Вопрос Самый простой способ скопировать ключи ssh на другую машину?
Я ленив дома и использую аутентификацию пароля для своих домашних компьютеров. Я готов перейти на проверку подлинности на основе ключей. В Интернете есть много опций о том, как это сделать, в том числе о том, чтобы пропустить ключ, перехватить ключ напрямую и т. Д.
Я ищу самый простой и рекомендуемый способ скопировать ключ, надеюсь, что есть удобная обертка где-нибудь в пакете Ubuntu ssh?
Я уже знаю о как отключить логины для входа в систему,
296
2017-09-27 20:24
происхождения
ответы:
ssh-copy-id
команды (в OpenSSH-клиент пакет и установлен по умолчанию) делает именно это:
ssh-copy-id user@hostname.example.com
копирует открытый ключ вашей личности по умолчанию (используйте -i identity_file
для других идентификаторов) удаленному хосту.
Идентификатор по умолчанию - это ваш «стандартный» ssh-ключ. Он состоит из двух файлов (открытый и закрытый ключ) в вашем ~/.ssh
каталог, обычно называемый identity
, id_rsa
или id_dsa
(и то же самое с .pub
), в зависимости от типа ключа. Если вы не создали более одного ключа ssh, вам не нужно беспокоиться о том, чтобы указать идентификатор, ssh-copy-id будет просто выбирать его автоматически.
Если у вас нет идентификатора, вы можете сгенерировать его с помощью инструмента ssh-keygen
,
Кроме того, если сервер использует порт, отличный от значения по умолчанию (22
) вы должны использовать кавычки таким образом (источник):
ssh-copy-id "user@hostname.example.com -p <port-number>"
408
2017-09-27 21:01
Мне нравится ответ от Марселя. Я не знал этой команды. Я всегда использовал то, что я нашел на Веб-сайт SUN:
cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"'
Я думал разместить его здесь еще, потому что это хорошая иллюстрация того, что может быть достигнуто в код оболочки с силой ssh
, Но используя ssh-copy-id
безусловно, более безопасный способ сделать это правильно!
Обратите внимание, что если папка .ssh
еще не существует, команда выше не будет выполнена. Кроме того, было бы лучше при создании файла установить минимально возможное разрешение (в основном чтение-запись только для владельца). Вот более продвинутая команда:
cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'
113
2017-10-11 22:26
Графический метод
- открыто Приложения ▸ Пароли и ключи ▸ Мои личные ключи,
- Выберите свой ключ, а затем нажмите Дистанционный пульт ▸ Настроить ключ для безопасной оболочки,

25
2017-09-27 20:32
На Ubuntu вы можете получить ключи от Launchpad:
ssh-import-id [launchpad account name]
Детали:
- Вам нужна учетная запись Launchpad, поэтому Войти или Создать аккаунт
- После входа в систему нажмите кнопку рядом с Клавиши SSH:
Вставьте содержимое своего открытого ключевого файла в это поле (включая комментарий). Такой ключ выглядит так:
ssh-rsa AAAAB3Nza .... UyDOFDqJp lekensteyn
Вот, ssh-rsa
указывает, что ключ является ключом RSA, AAAAB3Nza .... UyDOFDqJp
является фактическим ключом и lekensteyn
это комментарий.
- Сохраните клавишу, нажав Импорт открытого ключа
- Если все пойдет хорошо, ваш ключ теперь должен быть указан в разделе Клавиши SSH:
Пакет ssh-import-id
должен быть установлен на машине, к которой необходимо получить доступ с удаленного устройства. Этот пакет устанавливается вместе с openssh-server
пакет, поскольку это рекомендуемый пакет для openssh-server
, Убедившись, что ssh-import-id
был установлен на клиентской машине, запустите:
ssh-import-id [launchpad account name]
Это загрузит открытый ключ с серверов Launchpad через HTTPS, который защитит вас от атак MITM.
На Ubuntu Lucid и раньше вы можете сделать то же самое:
wget https://launchpad.net/~[lp acount name]/+sshkeys -O - >> ~/.ssh/authorized_keys && echo >> ~/.ssh/authorized_keys
echo
команда необходима для получения дополнительной строки строки после строки с ключом SSH.
18
2018-06-10 19:20
для пользовательского порта
ssh-copy-id -i "user@hostname.example.com -p2222"
-i переключается по умолчанию на ~ / .ssh / id_rsa.pub, если вы хотите другой ключ, поместите путь ключа после -i
ПРЕДУПРЕЖДЕНИЕ: Если вы не пишете -i, он скопирует все ваши ключи, найденные в ~ / .ssh
12
2018-03-08 20:16