Рассматривается вопрос создания ключа пользователя и настройки для авторизации на сервере в ssh через ключ.
Предполагается что ssh-сервер запущен и имеет настройки, принятые по умолчанию в ALTLinux.
ssh – программа для входа на удалённую машину и выполнения на ней команд.
В ssh используется ассиметричное шифрование, соответственно используется пара из закрытого и открытого ключа.
Для создания ключа на компьютере пользователя нужно выполнить
На вопрос о файле для сохранения ключа нажать Enter (по умолчанию). Далее будет задан вопрос о пароле к ключу. Пароль нужно указать.
В каталоге ~/.ssh
появляются файлы
Внимание! Никогда никому не пересылайте секретный ключ.
Для того, чтобы пользователь мог авторизоваться в системе через ssh-ключ, нужно в файл ~/.ssh/authorized_keys добавить содержимое файла id_dsa.pub. Если пользователь будет один входить под этой учётной записью, файл id_dsa.pub можно просто скопировать, назвав authorized_keys.
Также можно воспользоваться утилиой ssh-copy-id, если копировать вручную не хочется.
Данные изменения проводятся в каталоге пользователя на сервере.
Обратите внимание на права файлов:
и на каталог
принадлежать файлы должны пользователю и его группе
Настройку доступа на сервере можно посмотреть в разделе: Настройка сервера
Для удобства в файле ~/.ssh/config можно указать сокращение
и вызывать просто как
Можно добавить ещё настроек:
Чтобы не указывать пароль каждый раз при обращении к серверу, можно запустить
будет спрошен пароль и расшифрованный ключ запомнится на время вашего сеанса.
Это сработает если запущен ssh-agent (в ALT Linux он запускается автоматически при графическом входе в систему).
Инструкция по установке и настройке сервера ssh для администратора.
Нужно установить пакет openssh-server, включить автоматический запуск при загрузке системы:
В файле /etc/openssh/sshd_config укажите строку Allow Users? с перечислением пользователей, имеющих право подключаться к системе.
Например
А также рекомендуется выключить аутентификацию по паролю (исправить строчку Password Authentication? на):
Для вступления настроек в силу:
Чтобы sshd мог пускать пользователей, живущих в LDAP, нужно немного подправить /etc/pam.d/sshd
Думаю, не будет лишним указать содержимое /etc/pam.d/system-auth и system-auth-use_first_pass
Предупреждение: с openssh-server версии openssh-3.6.1p2-alt6 из ALTLinux Master 2.4 pam_mkhomedir НЕ РАБОТАЕТ, это решенный баг. См. тж. ниже.
system-auth
system-auth-use_first_pass
Например, можно перенести sshd на другой порт, а на родной порт (22) ssh натравить portsentry.
Так же целесообразно ограничить число «ожидающих» соединений, когда пароль еще не введен.
Для этого, в файле /etc/openssh/sshd_config укажите строку
В этом случае у вас будут разрешены только 2 «ожидающих» соединения, и каждое следующее будет сброшено с вероятностью 70 %
Для особо изощрённой защиты можно использовать knock.
См. также http://www.linux.com/article.pl?sid=05/09/15/1655234 и http://fail2ban.sourceforge.net/
И ещё http://www.csc.liv.ac.uk/~greg/sshdfilter/
Практика показывает, что надо менять весь набор: копировать /etc/init.d/sshd, /etc/sysconfig/sshd; (факультативно делать ссылки или копировать сам sshd, /etc/pam.d/sshd); изменять посредством /etc/sysconfig/sshd переменные PIDFILE, LOCKFILE, EXTRAOPTIONS.
Dmitry V. Levin
Если вам нужно добавить на сервер, куда вы имеете доступ, чей-то ключ, используйте
например,