По умолчанию 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, относительно home dir)
~/.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.