В целом, работает сразу из коробки. Однако для подключённых непосредственно к Internet серверов (как минимум) крайне желательно настроить OpenSSH на аутентификацию с использованием механизма открытых ключей. Причины: возможен подбор паролей к серверу, на котором sshd запущен с разрешением аутентификации пользователя по паролю. Аналогичный взлом при использовании открытых ключей значительно более затруднён.
Для использования открытых ключей при работе с OpenSSH необходимо:
Пара ключей создаётся командой 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-add [file]
Подробнее см. man ssh-agent, man ssh-add. При работающем ssh-agent и наличии в нём необходимых расшифрованных ключей при установлении соединений ssh парольные фразы запрашиваться не будут.
Для работы с ключами права на на домашний каталог пользователя должны быть 0700.
Возможно конфигурирование дополнительных параметров, используемых 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 (например, при проброске вызовов в 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.
Дата создания: 2006-05-24 14:08:38 (Фетисов Н. А. (naf))
Последнее изменение: 2010-09-03 14:42:14 (Фетисов Ф. А. (faf))
Владелец: Фетисов Н. А. (naf)
Версия: 15 Все версии
Wiki::Admin Карта раздела Оглавление Изменения за сутки Изменения за неделю Изменения за месяц