По умолчанию ssh ищет файлы id_dsa и id_rsa. Ключи не обязательно должны быть названы так, вы также можете назвать его mykey или даже поместить в другой каталог. Однако, если вы выполните одно из этих действий, вам нужно явно ссылаться на ключ в команде ssh следующим образом:
ssh user@server -i /path/to/mykey
Если команда не принимает -i, например. sshfs, используйте параметр IdentityFile:
sshfs -o IdentityFile=/path/to/mykey user@host:/path/on/remote /mountpoint
При генерации ключа вы получите два файла: id_rsa (закрытый ключ) и id_rsa.pub (открытый ключ). Как показывают их имена, секретный ключ должен храниться в секрете, а публичный ключ может публиковаться публично.
Аутентификация с открытым ключом работает с открытым и закрытым ключом. У клиента и сервера есть свои ключи. При установке openssh-server открытые и закрытые ключи сервера генерируются автоматически. Для клиента вам придется сделать это самостоятельно.
Когда вы (клиент) подключаетесь к серверу, обмениваются открытыми ключами. Вы получите серверы один, а сервер ваш. При первом получении открытого ключа сервера вас попросят принять его. Если этот открытый ключ изменится с течением времени, вы будете предупреждены, потому что происходит возможная атака MITM (Человек в середине), перехватывая трафик между клиентом и сервером.
Сервер проверяет, вам разрешено подключаться (определено в /etc/ssh/sshd_config), и если ваш открытый ключ указан в файле ~/.ssh/authorized_keys. Возможные причины отказа публичного ключа:
/etc/ssh/sshd_config: указывается AllowUsers или AllowGroups, но ваш пользователь не указан в списке групп или пользователей (по умолчанию не определен, ограничение доступа к пользователям или группам). DenyUsers или DenyGroups, и вы находитесь в списке пользователей или групп. Вы пытаетесь войти в систему как root, но PermitRootLogin установлено в No (по умолчанию yes). PubkeyAuthentication установлен на No (по умолчанию yes). AuthorizedKeysFile устанавливается в другое место, а открытые ключи не добавляются в этот файл (по умолчанию .ssh/authorized_keys, по отношению к домашнему директорию) ~/.ssh/authorized_keys: ваш открытый ключ не добавляется в этот файл (обратите внимание, что этот файл читайте как пользователь root)Нередко используется несколько клавиш. Вместо ssh user@host -i /path/to/identity_file вы можете использовать файл конфигурации ~/.ssh/config.
Общие настройки - это IdentityFile (ключи) и порт. Следующая конфигурация будет проверять «id_dsa» и «bender» только при соединении с ssh youruser@yourhost:
Host yourhost
IdentityFile ~/.ssh/id_dsa
IdentityFile ~/.ssh/bender
Если вы опустите Host yourhost, настройки будут применяться ко всем соединениям SSH. Другие параметры также могут быть указаны для этого совпадения с хостом, например User youruser, Port 2222 и т. Д. Это позволит вам соединить стенографию ssh yourhost вместо ssh -p2222 youruser@yourhost -i ~/.ssh/id_dsa -i ~/.ssh/bender.