
У меня есть настройка открытого/закрытого ключа, но я не знаю, куда его поместить. Должны ли оба эти файла быть помещены ~/.ssh/
для моего пользователя?
решение1
Закрытый ключ остается дома. Открытый ключ путешествует:
- Поместите свой закрытый ключ в
~/.ssh
(локальный хост). Обычно это~/.ssh/id_rsa
. - Поместите свой открытый ключ на
~/.ssh/authorized_keys
(удалённый хост).
В то время как первый шаг обычно выполняется автоматически при создании ключа, второй можно выполнить следующим образом:
$ ssh-copy-id ~/.ssh/id_rsa.pub user@remotehost
Если у вас есть какие-либо остаточные настройки, касающиеся удаленного хоста, вы можете столкнуться с некоторыми проблемами (сбой аутентификации или«слишком много ошибок аутентификации»). Чтобы избавиться от этой проблемы, вы можете принудительно ssh-copy-id
использовать аутентификацию по паролю с помощью:
$ ssh-copy-id -o"PubkeyAuthentication no" ~/.ssh/id_rsa.pub user@remotehost
Конечно, как только ключи будут правильно размещены, пароль больше не понадобится:
$ ssh user@remotehost
Вы также можете добавить некоторую конфигурацию SSH, ~/.ssh/config
чтобы сделать все еще проще:
Host [custom name for the remote machine]
Hostname [remote hostname or IP]
User [remote username]
IdentityFile /home/[your local user]/.ssh/id_rsa
Благодаря этому для входа на удаленный хост вам достаточно ввести следующее:
$ ssh [custom name for the remote machine]
Редактировать: если обе машины (локальная и удаленная) одинаковы, вы можете упростить процедуру следующим образом:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Это добавит ваш открытый ключ в authorized_keys
файл. Конечно, другой способ войти в систему как кто-то другой на вашей локальной машине — использовать:
$ su [another user]
Это позволит вам сэкономить время на SSH-транзакции там, где она может не понадобиться.Беспарольный режим su
можно настроить с помощьюsudo
:
$ sudo -iu [another user]