Самый простой способ скопировать ключи ssh на другую машину?

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

Я ищу самый простой и рекомендуемый способ скопировать ключ, надеюсь, что в пакете Ubuntu ssh есть удобная обертка?

Я уже знаю как отключить логины входа в систему .

ssh
290 голосов | спросил Jorge Castro 28 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 28 Sep 2010 00:24:37 +0400 2010, 00:24:37

5 ответов


403

Команда ssh-copy-id (в пакете openssh-client и установлена ​​по умолчанию) выполняет именно это:

  ssh-copy-id [email protected]
 

копирует открытый ключ вашей идентичности по умолчанию (используйте -i identity_file для других идентификаторов) на удаленный хост.

Идентификатор по умолчанию - это ваш «стандартный» ssh-ключ. Он состоит из двух файлов (открытый и закрытый ключ) в каталоге ~ /.ssh , обычно называемом identity , id_rsa или id_dsa (и то же самое с .pub ), в зависимости от типа ключа. Если вы не создали более одного ключа ssh, вам не нужно беспокоиться о том, чтобы указать идентификатор, ssh-copy-id будет просто выбирать его автоматически.

Если у вас нет идентификатора, вы можете сгенерировать его с помощью инструмента ssh-keygen .

Кроме того, если сервер использует порт, отличный от стандартного ( 22 ), вы должны использовать кавычки таким образом ( источник ):

  ssh-copy-id "[email protected] -p <port-number>"
 
ответил Marcel Stimberg 28 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 28 Sep 2010 01:01:46 +0400 2010, 01:01:46
111

Мне нравится ответ от Марселя. Я не знал этой команды. Я всегда использовал то, что я нашел на веб-сайте SUN :

  cat ~ /.ssh /id_rsa.pub | ssh <user> @ <hostname> 'cat>>> .ssh /authorized_keys & amp; & amp; & amp; echo "Скопировано ключ"
 

Я думал разместить его здесь еще, потому что это хорошая иллюстрация того, что может быть достигнуто в shell code с мощностью ssh . Но использование ssh-copy-id является, безусловно, более безопасным способом сделать это правильно!

Обратите внимание, что если папка .ssh еще не существует, указанная выше команда завершится с ошибкой. Кроме того, было бы лучше при создании файла установить минимально возможное разрешение (в основном чтение-запись только для владельца). Вот более продвинутая команда:

  cat ~ /.ssh /id_rsa.pub | ssh <user> @ <hostname> 'umask 0077; mkdir -p .ssh; cat> .ssh /authorized_keys & amp; & amp; & amp; echo "Скопировано ключ"
 
ответил Huygens 12 +04002010-10-12T02:26:23+04:00312010bEurope/MoscowTue, 12 Oct 2010 02:26:23 +0400 2010, 02:26:23
25

Графический метод

  1. Откройте Приложения â-¸ Пароли и ключи â-¸ Мои личные клавиши .
  2. Выберите свой ключ, а затем нажмите Удаленный . Настроить ключ для безопасной оболочки .

Настройка компьютера для подключения SSH

ответил ændrük 28 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 28 Sep 2010 00:32:37 +0400 2010, 00:32:37
18

В Ubuntu вы можете получить ключи от Launchpad:

  ssh-import-id [имя учетной записи запуска]
 

<сильный> Подробнее

  1. Вам нужна учетная запись Launchpad, поэтому войдите или создайте учетную запись
  2. После входа в систему нажмите кнопку рядом с SSH-ключами:
  3. Вставьте содержимое файла открытого ключа в это поле (включая комментарий). Такой ключ выглядит следующим образом:

      ssh-rsa AAAAB3Nza .... UyDOFDqJp lekensteyn
     

    Здесь ssh-rsa указывает, что ключ является RSA-ключом, AAAAB3Nza .... UyDOFDqJp является фактическим ключом и lekensteyn это комментарий.

  4. Сохраните ключ, нажав Импорт открытого ключа
  5. Если все пойдет хорошо, ваш ключ теперь должен быть указан под SSH-ключами:

Пакет ssh-import-id должен быть установлен на компьютере, к которому необходимо получить доступ с удаленного устройства. Этот пакет устанавливается вместе с пакетом openssh-server , так как это рекомендуемый пакет для openssh-server . Убедившись, что ssh-import-id установлен на клиентской машине, запустите:

  ssh-import-id [имя учетной записи запуска]
 

Это загрузит открытый ключ с серверов Launchpad через HTTPS, который защитит вас от атак MITM.

В Ubuntu Lucid и раньше вы можете сделать то же самое:

  wget https://launchpad.net/~[lp acount name] /+ sshkeys -O ->>>>> ~ /.ssh /authorized_keys & amp; & amp; & amp; & amp; эхо> ~ /.ssh /authorized_keys
 

Команда echo необходима для получения дополнительной строки строки после строки с ключом SSH.

ответил Lekensteyn 10 J0000006Europe/Moscow 2011, 23:20:51
12

для настраиваемого порта

  ssh-copy-id -i "[email protected] -p2222"
 

-i по умолчанию установлен на ~ /.ssh /id_rsa.pub, если вы хотите другой ключ, поместите путь ключа после -i

ПРЕДУПРЕЖДЕНИЕ: Если вы не пишете -i, он скопирует все ваши ключи, найденные в ~ /.ssh

ответил Omar A. Shaban 9 MaramSat, 09 Mar 2013 00:16:00 +04002013-03-09T00:16:00+04:0012 2013, 00:16:00

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132