Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'

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

Источник

Ответ 3

Если ваш сервер уже настроен на не принимать пароль на основе логина, вы можете получить ошибку Permission denied (publickey).

Это еще один способ отправки ключа с помощью netcat, поэтому вам не нужно аутентифицироваться. Он будет работать только через локальную сеть, но вы можете использовать переадресацию портов, чтобы сделать это через Интернет.

На сервере:

$ nc -l 55555 >> ~/.ssh/authorized_keys

На клиенте (замените HOSTNAME на имя хоста или IP-адрес сервера):

$ nc HOSTNAME 55555 < ~/.ssh/id_rsa.pub

Вы можете заменить 55555 на открытый порт по вашему выбору.

source: общаться через lan от linux до linux?


Приложение для новых новичков: я не думаю, что кто-то упомянул об этом, но если вы получаете ERROR: failed to open ID file '/home/username/.pub': No such file, вам нужно сначала создать ключ. На страницах справки Ubuntu есть отличный справочник по Генерация ключей RSA.

Ответ 4

Выбранный ответ правильный, но вот простой bash script для всех, кто хочет комбинировать keygen + copy: https://gist.github.com/wilcollins/bc420581da87962b8b47

Этот файл создает ключ SSH на клиентской машине, применяет соответствующие разрешения файлов, копии в локальный каталог ~/.ssh и копирует на указанный сервер.