Я помню, что есть команда для отправки открытого ключа на удаленный хост, который я хочу. Я хочу использовать эту функцию для отправки одного из моих открытых ключей на другой хост. Как я могу это сделать?
Команда для отправки открытого ключа на удаленный хост
Ответы (4)
Вы ищете ssh-copy-id
. Все, что делает эта команда, — это создает .ssh
и .ssh/authorized_keys
и устанавливает соответствующие разрешения, если они не существуют. Затем он добавляет ваш открытый ключ в конец .ssh/authorized_keys
.
ssh-copy-id root@server
.
- person Fedir RYKHTIK; 07.01.2014
Возможно, вы ищете эту команду:
cat ~/.ssh/id_rsa.pub | ssh user@hostname 'cat >> .ssh/authorized_keys'
Он добавляет ваш открытый ключ к авторизованным ключам сервера.
ssh-copy-id
. Хотя лично я бы немного изменил его на cat ~/.ssh/id_rsa.pub | ssh user@hostname 'tee -a .ssh/authorized_keys'
, но это только личное предпочтение.
- person Dan Jones; 27.07.2016
Если ваш сервер уже настроен на не принимать вход на основе пароля, вы можете получить ошибку Permission denied (publickey)
.
Это еще один способ отправки ключа с использованием netcat
, поэтому вам не нужно проходить аутентификацию. Это будет работать только в локальной сети, но вы можете использовать переадресацию портов, чтобы сделать это через Интернет.
На сервере:
$ nc -l 55555 >> ~/.ssh/authorized_keys
На клиенте (замените HOSTNAME
именем хоста или IP-адресом сервера):
$ nc HOSTNAME 55555 < ~/.ssh/id_rsa.pub
Вы можете заменить 55555
открытым портом по вашему выбору.
источник: чат по локальной сети с Linux на Linux?
Приложение для новичков: я не думаю, что кто-то еще упоминал об этом, но если вы получаете ERROR: failed to open ID file '/home/username/.pub': No such file
, вам нужно сначала сгенерировать ключ. На страницах справки Ubuntu есть отличное руководство по Создание ключей RSA.
В других ответах нет примера для ssh-copy-id, так что вот он (сначала вам нужно сгенерировать ключ)
ssh-copy-id user@url