Аутентификация с открытым ключом позволяет получить доступ к серверу через SSH без пароля. Вот два способа скопировать открытый ключ ssh на сервер.
Мы предполагаем, что вы понимаете основную концепцию SSH. На вашем сервере Linux включен ssh. Вы сгенерировали ключи ssh на своем персональном компьютере. Теперь вы хотите загрузить свой открытый ключ на авторизованные ключи сервера, чтобы вы могли получить к нему доступ без постоянного ввода пароля учетной записи.
В этой краткой статье показаны два метода добавления публичного ключа SSH на сервер.
Требования
Прежде чем вы это увидите, давайте проясним, что у вас уже должно быть:
Теперь, когда вы убедились в вышеупомянутых трех требованиях, давайте посмотрим, как использовать аутентификацию с открытым ключом.
Аутентификация для каждой пользовательской базы, поэтому открытый ключ отправляется в дом предполагаемого пользователя.
Первый способ — это когда конечный пользователь копирует открытый ключ своего персонального компьютера в список разрешенных ключей на удаленном сервере.
Здесь мы предполагаем, что вы смогли войти на удаленный сервер, используя ssh user_name @ ip_of_server. Он запрашивает пароль вашей учетной записи, и вы заходите на сервер.
Если вы добавите свой открытый ключ на сервер, вы сможете войти в систему, не вводя пароль все время.
OpenSSH предоставляет удобный инструментальный вызов ssh-copy-id для копирования открытых ключей ssh в удаленные системы. Он даже создает необходимые каталоги и файлы.
Как мы упоминали ранее, вы должны знать имя пользователя и пароль для сервера, к которому вы хотите получить доступ через аутентификацию с открытым ключом.
ssh-copy-id -i ~/.ssh/id_rsa.pub YOUR_USER_NAME@IP_ADDRESS_OF_THE_SERVER
При появлении запроса введите пароль для своей учетной записи на удаленном сервере. Ваш открытый ключ должен быть скопирован в соответствующую папку на удаленном сервере автоматически.
Мы использовали ~/.ssh/id_rsa.pub, потому что это местоположение по умолчанию для открытого ключа ssh. Если у вас есть его в другом месте, вы должны использовать это в приведенной выше команде.
Первый метод имел действие на стороне пользователя. Допустим, вы — системный администратор, а ваш сервер не разрешает SSH вход через пароль. Единственный способ получить доступ к серверу — использовать аутентификацию с открытым ключом SSH.
В таком случае вы можете попросить конечного пользователя предоставить свой открытый ключ. Теперь вы можете создать каталог .ssh/authorized_keys, а затем скопировать открытый ключ здесь.
Позвольте нам показать эти шаги.
Попросите конечного пользователя предоставить открытый ключ, введя следующую команду:
cat ~/.ssh/id_rsa.pub
Это покажет длинную случайную строку, начинающуюся с ssh-rsa:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname
Вы можете получить этот текст по электронной почте или с помощью сообщений. Обычно это не должно быть проблемой.
Помните, что вы должны создавать эти новые каталоги и файлы в домашнем каталоге конечного пользователя, а не в своем собственном (root/sysadmin).
mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys
Теперь откройте этот файл /home/user_name/.ssh/authorized_keys в текстовом редакторе, таком как Vim, и добавьте открытый ключ пользователя здесь:
vim /home/user_name/.ssh/authorized_keys
Сохраните и закройте файл. Это почти готово.
Наличие соответствующих прав доступа к файлу ssh очень важно, в противном случае вы увидите такие ошибки, как Permission denied (publickey).
Сначала убедитесь, что вы установили правильные права доступа к файлу:
chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys
Вы создали этот файл с правами администратора или root для другого пользователя. Вам нужно сменить владельца на пользователя:
chown -R username:username /home/username/.ssh
Теперь, когда это сделано, вы можете попросить конечного пользователя войти на сервер.
Помогло, спасибо!!!