@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Клиент может отображать дополнительную информацию в составе сообщения, но в любом случае соединение с сервером не устанавливается. Если пользователь согласен работать с новыми ключами, он должен удалить запись, соответствующую серверу, из файла .ssh/known_hosts
или ~/.ssh/known_hosts2
(имя файла зависит от версии протокола).
В отличие от telnetd
, sshd
не передает управление программе /bin/login
; вместо этого sshd
самостоятельно осуществляет регистрацию пользователя. (Если вы хотите, чтобы sshd
использовала программу login
, необходимо задать соответствующее значение опции UseLogin
в файле sshd_config
.) Таким образом, sshd
можно рассматривать как сочетание программ telnetd
и login
. Исключив программу login
из процесса регистрации, sshd
получает возможность выполнять аутентификацию с помощью открытого ключа.
Пользователи могут генерировать ключи и использовать их для регистрации на сервере. Эти ключи хранятся на клиентской машине в каталоге ~/.ssh
. Как известно, по умолчанию при аутентификации на сервере SSH пользователь должен задавать пароль. Если вы передадите открытый ключ на сервер, то будете избавлены от необходимости указывать пароль при регистрации. Для повышения уровня защиты при регистрации с помощью открытого ключа может также быть предусмотрен ввод специальной фразы пароля; это еще больше усложнит процедуру незаконного проникновения в систему. Чтобы аутентификация с помощью открытого ключа стала возможной, выполните следующие действия.
1. Зарегистрируйтесь на компьютере, выполняющем роль клиента при SSH-обмене.
2. Введите команду генерации ключей, соответствующих версии 2 SSH. Эта команда приведена ниже; для ее выполнения потребуется несколько секунд.
$ ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -C '' -N ''
Если вы не укажете опцию -N ''
, утилита ssh-keygen
запросит фразу пароля. Если перед нажатием клавиши
3. Скопируйте файл ~/id_rsa.pub
в свой рабочий каталог на сервере. (Этот файл содержит открытый ключ. Его имя отличается от имени файла, которое вы задали при вызове предыдущей команды, суффиксом .pub
.) Для копирования можно использовать команду scp
.
$ scp ~/.ssh/id_rsa.pub server:.ssh/id_rsa.client
4. Зарегистрируйтесь на сервере. Для этого вы можете использовать ssh
, но вам придется ввести пароль.
5. Сделайте каталог ~/.ssh
текущим. Если вы выведете список файлов, то увидите, что в этом каталоге присутствует файл id_rsa.client
.
6. Добавьте открытый ключ в файл authorized_keys2
. Это можно сделать с помощью следующей команды:
$ cat id_rsa.client >> authorized_keys2
С этого момента вы можете устанавливать соединение с сервером, используя протокол SSH 2. Если вы не указали фразу пароля, при регистрации вам не придется вводить какие-либо идентификационные данные. Опция -2
указывает SSH-клиенту на то, что взаимодействие должно осуществляться с использованием версии 2 протокола SSH.
$ ssh -2 server