OSS Group OSS Group
>  Карта
>  Поиск
>  Контакты
>  OSS Group  ::  Admin  ::  OpenSSH
  
РегистрацияЗабыли пароль?

↓  Быстрый поиск по Wiki


Режим поиска:   И   ИЛИ

↓  Доступные Wiki

↓  Навигация по сайту

[]

↓  Последняя новость

Загрузка...

↓  На эту страницу ссылаются:

Get Firefox!
[~]

OpenSSH

В целом, работает сразу из коробки. Однако для подключённых непосредственно к Internet серверов (как минимум) крайне желательно настроить OpenSSH на аутентификацию с использованием механизма открытых ключей. Причины: возможен подбор паролей к серверу, на котором sshd запущен с разрешением аутентификации пользователя по паролю. Аналогичный взлом при использовании открытых ключей значительно более затруднён.

Для использования открытых ключей при работе с OpenSSH необходимо:

  • создать одну или несколько пар ключей
  • скопировать открытый ключ на удалённый сервер
  • при желании настроить дополнительные параметры для работы ssh с удалённым сервером
  • запретить на удалённом сервере аутентификацию по паролю.

Создание ключа

Пара ключей создаётся командой ssh-keygen:

 $ ssh-keygen -t dsa -b 2048

-b - длина ключа; -t - тип ключа (dsa/rsa). После создания ключа будет запрошено, в какой файл его сохранять (возможно использование разных ключей для аутентификации на разных серверах) и парольная фраза для защиты ключа.

Ключи обычно хранятся в ~/.ssh/; ключ по-умолчанию - в id_dsa, открытая часть в id_dsa.pub. Парольная фраза должна быть достаточно длинная.

Копирование ключа на удалённый сервер

Для использования аутентификации DSA/RSA открытый ключ должен быть скопирован на удалённый сервер и размещён на нём в ~/.ssh/authorized_keys2 (для протокола SSH2). Это можно сделать или вручную, или командой

  ssh-copy-id [-i ~/.ssh/key.pub] [user@]hostname

Работа с ключами

  • Изменение парольной фразы для ключа:
  $ ssh-keygen -p [-f keyfile]
  • Для удобства работы возможно использование ssh-agent для хранения в памяти расшифрованных ключей. В ALT Linux ssh-agent запускается при входе пользователя в X-сессию, вызовом из /etc/X11/profile.d/ssh-agent.sh. При работе в консоли ssh-agent можно запустить вручную через '$ ssh-agent -u'.
  $ ssh-add [file]

Подробнее см. man ssh-agent, man ssh-add. При работающем ssh-agent и наличии в нём необходимых расшифрованных ключей при установлении соединений ssh парольные фразы запрашиваться не будут.

  • При необходимости можно организовать вызов к ssh-agent в сессии, запущенной через ssh на другой машине - в режиме ssh-agent forwarding. Режим перенаправления вызовов к ssh-agent включается или при вызове ssh с ключём '-A', или при задании директивы 'ForwardAgent no' в файле конфигурации ~/.ssh/config. Перенаправление вызовов к ssh-agent рекомендуется использовать только при необходимости и на доверенных системах.

Для работы с ключами права на на домашний каталог пользователя должны быть 0700.

Настройка дополнительных параметров для работы с ssh

Возможно конфигурирование дополнительных параметров, используемых ssh для работы с конкретными серверами, в ~/.ssh/config.
Пример конфигурации:

 Host    example
    HostName sample.foo.bar
    User user
    Protocol 2
    Port 10022
    ForwardX11 no
    ForwardAgent no
    Compression no
    IdentityFile ~/.ssh/example_dsa

При этом 'ssh example' будет эквивалентно команде 'ssh -2 -x -p 10022 -i ~/.ssh/example_dsa user@sample.foo.bar'

Несколько сервисов ssh на одном адресе IP

При необходимости возможно организовать несколько сервисов ssh, использующих разные порты одного адреса IP (например, при проброске вызовов в VPS с внутренними адресами). В конфигурации по-умолчанию ssh в целях безопасности не даёт подключиться к одному хосту в случае смены у него публичного ключа (записываемого при первом соединении в ~/.ssh/known_hоsts). Однако в случае необходимости можно отключить данный режим добавлением параметра 'HostKeyAlias' в конфигурацию хоста в ~/.ssh/config:

 Host   example1
	HostName sample.foo.bar
	Port 10022
	HostKeyAlias example1
 Host   example2
	HostName sample.foo.bar
	Port 11022
	HostKeyAlias example2

Запрещение аутентификации по паролю

На сервере ssh в /etc/openssh/sshd_config проставить

  PasswordAuthentication no

и убедиться в наличии

  PermitRootLogin no
  RhostsAuthentication no
  IgnoreRhosts yes

Перезапустить сервис sshd.

Утилиты

  • sshproxy GPL Python - прокси-сервер для ssh, позволяет проводить авторизацию на удалённых серверах по одному паролю/ключу, управлять доступом пользователей, предоставлять доступ к ряду серверов в DMZ через один открытый внешний порт.
  • SSH Enchanter Apache Java - аналог expect для работы с сессиями ssh.
  • sshl Perl - мультиплексор SSH/SSL соединений для обеспечения параллельной работы SSH и HTTPS на одном и том же порту.
  • Authprogs - скрипт на Perl для ограничений выполняемых команд в зависимости от используемого пользователем ключа ssh.

Ссылки


Дата создания: 2006-05-24 14:08:38 (Фетисов Н. А. (naf))
Последнее изменение: 2010-09-03 14:42:14 (Фетисов Ф. А. (faf))
Владелец: Фетисов Н. А. (naf)
Версия: 15  Все версии


  Не показывать комментарии



Wiki::Admin   Оглавление  Карта раздела  Изменения за сутки  Изменения за неделю  Изменения за месяц



Valid XHTML 1.0 Transitional  Valid CSS!  [Valid RSS]