Команда для отправки открытого ключа на удаленный хост

Я помню, что есть команда для отправки открытого ключа на удаленный хост, который я хочу. Я хочу использовать эту функцию для отправки одного из моих открытых ключей на другой хост. Как я могу это сделать?


person user482594    schedule 09.08.2011    source источник


Ответы (4)


Вы ищете ssh-copy-id. Все, что делает эта команда, — это создает .ssh и .ssh/authorized_keys и устанавливает соответствующие разрешения, если они не существуют. Затем он добавляет ваш открытый ключ в конец .ssh/authorized_keys.

person cdhowie    schedule 09.08.2011
comment
Отлично. Просто запустите ssh-copy-id root@server. - person Fedir RYKHTIK; 07.01.2014

Возможно, вы ищете эту команду:

cat ~/.ssh/id_rsa.pub | ssh user@hostname 'cat >> .ssh/authorized_keys'

Он добавляет ваш открытый ключ к авторизованным ключам сервера.

Источник

person Flaudre    schedule 22.07.2016
comment
Это более переносимо, чем принятый ответ, поскольку не все системы (я смотрю на вас, OS X) имеют ssh-copy-id. Хотя лично я бы немного изменил его на cat ~/.ssh/id_rsa.pub | ssh user@hostname 'tee -a .ssh/authorized_keys', но это только личное предпочтение. - person Dan Jones; 27.07.2016
comment
Похоже, что ssh-copy-id является частью MacOS Sierra, и это хорошо. - person Graham; 18.10.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.

person Keith    schedule 05.09.2016

В других ответах нет примера для ssh-copy-id, так что вот он (сначала вам нужно сгенерировать ключ)

ssh-copy-id user@url
person vozman    schedule 18.08.2020