Как перенести мои ключи SSH на другую машину?

У меня есть учетные записи на двух машинах: H1 и H2. Я создал ключи ssh на H1 и установил их на S1. Теперь я могу ssh на S1 из H1. Я хочу сделать то же самое с Н2. Как мне установить ssh-ключи, созданные на H1, на H2?


Отредактировано: Если у вас есть обе машины, вы можете поделиться своим закрытым ключом. Но это решение небезопасно в случае кражи ноутбука или для машин, которыми вы не владеете.

Вы можете скопировать свои закрытые ключи из H1 на H2, если вы хотите использовать тот же закрытый ключ, чтобы иметь возможность входить с H2 на S1. Когда вы в H1 выполняете команды:

  H1 $ ssh H2 mkdir ~/.sshH1 $ scp ~/.ssh/id_rsa ~/.ssh/id_dsa H2: ~/.  ssh/ 

Внимание! Это удалит и заменит любой закрытый ключ, который у вас был в H2.

Лучше создать новые закрытые ключи на H2 ( ssh-keygen ) и установить их открытую часть на S1 с помощью ssh-copy-id util. В этом более безопасном случае у вас будет два набора ключей; один предназначен для входа в систему H1-S1, а второй – для входа в систему H2-S1. На S1 будут авторизованы два открытых ключа. И вы сможете отозвать любой из них или оба (например, если ваш блокнот украден, или владелец машины решит отключить вашу учетную запись и повторно использовать все ваши файлы).


30

Используйте ssh-copy-id

ОБЗОР

ssh-copy-id [-i [файл_идентификации]] [пользователь @] компьютер

ОПИСАНИЕ

ssh-copy-id – это сценарий, который использует ssh для входа на удаленный компьютер и добавления указанного файла идентификации в файл ~/.ssh/authorized_keys на этой машине.

Улучшите этот ответ
ответил 06 сен. ’11 в 15:14
  • 1
    @ Я хочу выполнить ssh с H2 на S1. Я хочу перенести и установить свой закрытый и открытый ключи с H1 на H2. Это сделает то? – Брюс, 06 сен., 15:17
  • 3
    @Bruce, нет, вам нужно заново сгенерировать ключи на h2 и использовать эту команду для копирования ваших ключей. Другой подход – разрешить h1 и h2 совместно использовать домашний каталог. – Му Цяо 06 сен. ’11 в 15:19
добавить комментарий |

Используйте ssh-copy-id

ОБЗОР

ssh-copy-id [-i [файл_идентификации]] [пользователь @] компьютер

ОПИСАНИЕ

ssh-copy-id – это сценарий, который использует ssh для входа на удаленный компьютер и добавляет указанный файл идентификации в файл ~/.ssh/authorized_keys на этом компьютере.


14

Используйте два частных ключи

Настройте H2 с помощью того же процесса (но не того же закрытого ключа), что и при настройке H1:

  • Никогда не бывает веских причин для копирования закрытого ключа с другой машины. Если вы еще не создали новый закрытый ключ на H2, сделайте это сейчас. Также сгенерируйте соответствующий открытый ключ. В терминале на H2

введите: ssh-keygen -t rsa

  • Скопируйте открытый ключ H2 на сервер. В терминале на H2

введите: ssh-copy-id username@S1.net

( но используйте свое фактическое имя пользователя на S1 и имени хоста S1, а затем введите свой пароль на S1, когда он его запросит).

Это устанавливает открытый ключ вашей рабочей станции в ~/.ssh/authorized_keys для этого пользователя на сервере.

  • Шаг 3 отсутствует. С этого момента вы можете войти в S1 со своего H2, а также войдите в S1 со своего H1.

подробности

Я предполагаю, что вы действительно спрашиваете

  • У меня есть сервер (“S1”)
  • Я вхожу на свой сервер со своего личного ноутбука (“H1”)
  • Я также хочу войти на свой сервер со своей рабочей станции (“H2”).

Как правильно это сделать?

  • Полагаю, я мог бы просто войти в систему с одним и тем же паролем из обоих мест. Это не может быть правильным путем, потому что все говорят, что аутентификация с открытым ключом намного лучше, чем пароли. (а)
  • Полагаю, я мог бы просто скопировать закрытый ключ со своего ноутбука на свою рабочую станцию. Это не может быть правильным путем, потому что все говорят, что закрытый ключ никогда не должен покидать клиентскую машину.

Людям вбивают в голову, что одна учетная запись на сервер имеет одно имя пользователя и, конечно, один авторизованный пароль.

Системы с открытым ключом, такие как ssh, лучше, чем система паролей: одна учетная запись на сервере имеет одно имя пользователя и любое количество разрешенных открытых ключей , все они перечислены в файле ~/.ssh/authorized_keys .

(подробнее).

Улучшите этот ответ
ответил 21 авг., В 15:57
  • Прости меня для повторения. – Дэвид Кэри, 21 августа 2014, 16:09
  • Лучше всего удалять ~/. ssh/authorized_keys , поскольку старые рабочие станции сняты с производства? – BigRon 05 фев. В 16:10
  • Это проблема этого подхода, теперь вам нужно удалить эти старые открытые ключи. – NZ Dev 17 февраля ’20, в 3:44
  • Это действительно работает и является самым простым и безопасным способом. Благодаря! +1 – Норман Берд 21 нояб., 20:16
добавить комментарий |

Использовать два закрытых ключа

Настройте H2, используя тот же процесс (но не тот же закрытый ключ), что и при настройке H1:

  • Никогда не бывает веских причин для копирования закрытого ключа с какой-либо другой машины. Если вы еще не создали новый закрытый ключ на H2, сделайте это сейчас. Также сгенерируйте соответствующий открытый ключ. В терминале на H2

введите: ssh-keygen -t rsa

  • Скопируйте открытый ключ H2 на сервер. В терминале на H2

введите: ssh-copy-id username@S1.net

( но используйте свое фактическое имя пользователя на S1 и имени хоста S1, а затем введите свой пароль на S1, когда он его запросит).

Это устанавливает открытый ключ вашей рабочей станции в ~/.ssh/authorized_keys для этого пользователя на сервере.

  • Шаг 3 отсутствует. С этого момента вы можете войти в S1 со своего H2, а также войдите в S1 со своего H1.

подробности

Я предполагаю, что вы действительно спрашиваете

  • У меня есть сервер (“S1”)
  • Я вхожу на свой сервер со своего личного ноутбука (“H1”)
  • Я также хочу войти на свой сервер со своей рабочей станции (“H2”).

Как правильно это сделать?

  • Полагаю, я мог бы просто войти в систему с одним и тем же паролем из обоих мест. Это не может быть правильным путем, потому что все говорят, что аутентификация с открытым ключом намного лучше, чем пароли. (а)
  • Полагаю, я мог бы просто скопировать закрытый ключ со своего ноутбука на свою рабочую станцию. Это не может быть правильным путем, потому что все говорят, что закрытый ключ никогда не должен покидать клиентскую машину.

Людям вбивают в голову, что одна учетная запись на сервер имеет одно имя пользователя и, конечно, один авторизованный пароль.

Системы с открытым ключом, такие как ssh, лучше, чем система паролей: одна учетная запись на сервере имеет одно имя пользователя и любое количество разрешенных открытых ключей , все они перечислены в файле ~/.ssh/authorized_keys .

(подробнее).


4

Для смещения ключей SSH с одного компьютер на другой. Просто скопируйте всю папку из ~/.ssh с H1 (старая машина) в папку содержимого ~/.ssh новой машины H2..

Теперь попробуйте:

ssh ubuntu@13.123.43.26 (ваш IP-адрес S1)

Скорее всего, вы получите предупреждение о разрешении, чтобы исправить этот запуск:

chmod 400 ~/.ssh/id_rsa

Теперь снова :

ssh ubuntu@13.123.43.26 (ваш IP-адрес S1)

Теперь он будет работать нормально.

Улучшите этот ответ
ответил 30 сен ’19, в 16:13
  • копирование ключей (он сказал, что установка) было тем, о чем он просил, а не тем, как устанавливать разрешения или входить в систему. scp/home/user1/.ssh/id_rsa user2 @ mydomain: ~/.ssh/id_rsa – NZ Dev 17 фев, в 4:08
добавить комментарий |

Для переноса ключей SSH с одного компьютера на другой. Просто скопируйте всю папку из ~/.ssh с H1 (старая машина) в папку содержимого ~/.ssh новой машины H2.

Теперь попробуйте:

ssh ubuntu@13.123.43.26 (ваш IP-адрес S1)

Скорее всего, вы получите предупреждение о разрешении, чтобы исправить этот запуск:

chmod 400 ~/.ssh/id_rsa

Теперь снова :

ssh ubuntu@13.123.43.26 (ваш IP-адрес S1)

Теперь он будет работать нормально.


1

Все вопросы здесь касаются проблемы копирования идентичности с одного сервера на другой с использованием ssh-copy-id , что не является предметом вопроса.

Проблема в том, что вопросы, которые, похоже, задаются: , как использовать ту же пару закрытого и открытого ключей, сгенерированную и используемую на персональном компьютере (H1), можно использовать на другом персональном компьютере (H2), чтобы не настраивать новый закрытый-открытый ключ и вручную добавить его на каждый сервер, к которому мы подключались .

Это не рекомендуется из соображений безопасности, как широко упоминалось другими, однако можно достичь, выполнив следующие шаги:

  1. Скопируйте личные (например, ~/.ssh/id_rsa ) и общедоступные (например, ~/.ssh/id_rsa.pub ) с вашего компьютера H1 на компьютер H2 в расположение ~/.ssh ode> (Делайте это только через надежный USB-накопитель, который вы потом отформатируете, не используйте электронную почту или другие интернет-носители). Когда вы выполните следующую команду в H2 ls -alt ~/.ssh , вывод будет содержать как минимум следующее:
  -rw-r - r-- 1 youUserName youUserName 1240 3 ноября, 14:52 id_rsa-rw-r - r-- 1 youUserName youUserName 412 3 ноября 14:52 id_rsa. pub  
  1. В H2 измените разрешение закрытого ключа на менее доступное (в противном случае последует следующий шаг) с помощью команды chmod 600 ~/.ssh/id_rsa , так что вывод следующей команды ls -alt ~/.ssh будет содержать следующее (обратите внимание на отличие от разрешения выше):
  -rw ------- 1 youUserName youUserName 1240 3 ноября, 14:52 id_rsa-rw-r - r-- 1 youUserName youUserName 412 ноя  3 14:52 id_rsa.pub  
  1. Заключительный шаг. на H2 теперь используйте команду ssh-add ~/.ssh/id_rsa , чтобы разрешить использование пары закрытый-открытый ключ для идентификации себя с H2 на любой сервер, к которому вы подключитесь через используя импортированный закрытый-открытый ключ.

Теперь любая команда ssh или scp , например ssh yourUserName @ ip-address должен пройти успешно, как если бы вы вошли в H1.

Соображения безопасности:

  • ПОЖАЛУЙСТА, УЧИТЬТЕ ДРУГИЕ ПРЕДЛОЖЕНИЯ ДЛЯ ПОВЫШЕНИЯ БЕЗОПАСНОСТИ, АКА СОЗДАЙТЕ НОВУЮ ПАРУ ЧАСТНЫХ КЛЮЧЕЙ
  • Единственный случай, когда Я считаю, что это будет полезно при переходе к новой машине навсегда, так что H2 станет вашим основным компьютером, а H1 больше не будет использоваться;
  • Если вы все еще используете H1 и H2 , нет веских причин для использования той же пары закрытого и открытого ключей из H2.
Улучшите этот ответ iv>
ответил 24 ноября ’20, 15:10
добавить комментарий |

Все вопросы здесь касаются проблемы копирования идентичности с одного сервера на другой с использованием ssh-copy -id , вопрос не в этом.

Проблема, которую, кажется, задают вопросы, заключается в , как использовать тот же закрытый-открытый ключ пара, сгенерированная и используемая на персональном компьютере (H1), может быть использована на другом персональном компьютере (H2), чтобы не нужно было настраивать новый закрытый-открытый ключ и вручную добавлять его на каждый сервер, который мы использовали для подключения к .

Это не рекомендуется из соображений безопасности, о чем широко упоминалось другими, однако этого можно добиться с помощью следующих шагов:

  1. Скопируйте личные (например, ~/.ssh/id_rsa ) и общедоступные (например, ~/.ssh/id_rsa.pub ) с вашего компьютера H1 на ваш компьютер H2 в расположении ~/.ssh (делайте это только через надежный USB-накопитель, который вы потом отформатируете, не используйте электронную почту или любой другой интернет-b усредненная среда). Когда вы выполните следующую команду в H2 ls -alt ~/. ssh вывод будет содержать как минимум следующее:
  -rw-r - r-- 1 youUserName youUserName 1240 3 ноября, 14:52  id_rsa-rw-r - r-- 1 youUserName youUserName 412 3 ноября, 14:52 id_rsa.pub  
  1. На H2 измените разрешение закрытого ключа чтобы быть менее доступным (в противном случае последует следующий шаг) с помощью команды chmod 600 ~/.ssh/id_rsa , чтобы вывод следующей команды ls -alt ~/ .ssh будет содержать следующее (обратите внимание на отличие от разрешения выше):
  -rw ------- 1 youUserName youUserName  1240 3 ноября, 14:52 id_rsa-rw-r - r-- 1 youUserName youUserName 412 3 ноября 14:52 id_rsa.pub  
  1. Заключительный шаг. на H2 теперь используйте команду ssh-add ~/.ssh/id_rsa , чтобы разрешить использование пары закрытый-открытый ключ для идентификации себя с H2 на любой сервер, к которому вы подключитесь через используя импортированный закрытый-открытый ключ.

Теперь любая команда ssh или scp , например ssh yourUserName @ ip-address должен завершиться успешно, как если бы вы вошли в H1.

Соображения безопасности:

  • ПОЖАЛУЙСТА, УЧИТЬТЕ ДРУГИЕ ПРЕДЛОЖЕНИЯ ДЛЯ ПОВЫШЕНИЯ БЕЗОПАСНОСТИ, ИНАЧЕ СОЗДАВАЙТЕ НОВУЮ ПАРУ ЧАСТНО-ОБЩЕСТВЕННЫХ КЛЮЧЕЙ
  • Единственный случай, когда Я считаю, что это будет полезно при переходе к новой машине навсегда, так что H2 станет вашим основным компьютером, а H1 больше не будет использоваться;
  • Если вы все еще используете H1 и H2 , нет веских причин для использования той же пары закрытого и открытого ключей из H2.

0

Будет ли ssh-copy-id выполнять эту работу за вас: http://linux.die .net/man/1/ssh-copy-id?

Улучшите этот ответ
ответил 06 сентября 2011 в 15:14
  • @ Я хочу выполнить ssh с H2 на S1. Я хочу перенести и установить свой закрытый и открытый ключи с H1 на H2. Это сделает то? – Брюс, 06 сен., 15:16
  • 2
    Если вы вошли в систему либо на S1, либо на H1 (у которых теперь есть ваш ключ), использование ssh-copy-id позволит вам передать ваш открытый ключ (не закрытый) в H2. В общем, лучше всего ограничить количество машин, на которых установлен ваш закрытый ключ. Постарайтесь сохранить его на нескольких защищенных машинах, только чтобы предотвратить его потерю.. – Alex 06 сен., В 15:21
  • Как скопировать мой закрытый ключ в H2? – Брюс 6 сен. ’11 в 15:25
добавить комментарий |

Будет ли ssh-copy-id выполнять эту работу за вас: http://linux.die.net/man/1/ssh- идентификатор-копии?


0

Перенести ключи используя scp следующим образом:

  scp/home/[userpting/.ssh/id_rsa* user @ ip:/home/[user  ]/. ssh/ 

Улучшите этот ответ
ответил 17 нояб., в 13:29
добавить комментарий |

Перенесите ключи с помощью scp следующим образом:

  scp/home/[user provided/.ssh/id_rsa* user @ ip:/home/[user]/. ssh/ 


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

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

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

Я уже знаю, как отключить вход по паролю.


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

  ssh-copy-id user@hostname.example.com  

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

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

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

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

  ssh-copy-id "user@hostname.example. com -p " 

149

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

   cat ~/.ssh/id_rsa.pub | ssh  @  'cat >> .ssh/authorized_keys && echo "Ключ скопирован"  

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

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

  cat ~/.ssh/id_rsa.pub | ssh  @  'umask 0077;  mkdir -p .ssh;  cat >> .ssh/authorized_keys && echo "Ключ скопирован" ' 

Улучшите этот ответ
отредактировано 4 октября ’19 в 7:31
Albert Fougy
333 бронзовых знака
ответил 11 окт.10 в 22:26
  • 2
    Эти точные команды также работают с Mac – Михай П. 20 февраля 2015 г., 4:09
  • Он должен работать под любым Unix с большинством команд оболочки. Я обновил сообщение с помощью обновленной команды на случай, если папка .ssh не существует на удаленной стороне. – Гюйгенс 01 марта 2015, в 14:54
  • 2
    Код cat не нужен – достаточно обычного перенаправления ввода, например - maxschlepzig 17 марта '16 в 22:44
  • @Huygens Спасибо. Полезнее запомнить это, потому что вам не нужно ничего устанавливать, и он также может быть полезен для выполнения сторонних команд, например. изменение разрешений на стороне сервера, как вы продемонстрировали в расширенном примере. – Джонатан Комар, 21 марта 2016, 13:15
  • 2
    Я предпочитаю этот способ, так как он позволяет использовать подробный ssh, который помогает понять, почему что-то не работает. sshcopyid просто завис и никогда не работал, все прошло отлично. – Сирены 29 мая ’17 в 23:03
| показать 1 дополнительный комментарий

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

  cat ~/.ssh/id_rsa.pub |  ssh  @  'cat >> .ssh/authorized_keys && echo «Ключ скопирован»'  

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

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

  cat ~/.ssh/id_rsa.pub |  ssh  @  'umask 0077;  mkdir -p .ssh;  cat >> .ssh/authorized_keys && echo "Ключ скопирован" ' 

32

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

  1. Открытие приложений Пароли и ключи Мои личные ключи .
  2. Выберите свой ключ и затем нажмите Remote Настроить ключ для защиты Оболочка .

Улучшить этот ответ
отредактировано 10 мая 2012 в 14:10
27 сен. ’10 в 20:32
  • 1
    В моем меню нет “Паролей и ключей шифрования”. – Хорхе Кастро, 27 сен., 20:33
  • Какую версию Ubuntu вы используете? В Ubuntu 10.04 LTS это должно быть доступно по умолчанию. – Эндрюк, 27 сен., 20:46
  • 10.10, только что добавлен тег. Ответ Марселя – это то, что я ищу, хотя +1 для вашего ответа, ориентированного на рабочий стол! – Хорхе Кастро, 27 сен. 2010, 21:04
  • 4
    Это программа морской конек . – Жиль ‘SO – перестань быть злым’ 27 сен 2010 в 21:12
  • 1
    Думаю, это приложение находится в меню System-> Preferences в 10. 10 (сейчас не могу проверить, я на 10.04) – Гюйгенс, 11 окт.10, 22:07
  • | показать 1 дополнительный комментарий

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

    1. Откройте Приложения Пароли и ключи Мои личные ключи .
    2. Выберите свой и нажмите Remote Настроить ключ для Secure Shell .


    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 account  name]  

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

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

      wget https://launchpad.net/~[lp имя учетной записи]/+ sshkeys -O - >> ~/.ssh/authorized_keys &&  echo >> ~/.ssh/authorized_keys  

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

    • Ручная страница ssh-import-id
    Улучшите этот ответ
    отредактировано 16 июня ’15 в 7:52
    anatoly techtonik
    1,69322 золотых знака2121 серебряных знака3737 бронзовых знаков
    ответил 10 июня ’11 в 19:20
    добавить комментарий |

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

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

    Подробности :

    1. Вам потребуется учетная запись панели запуска, чтобы войдите или создайте учетную запись.
    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 account  name]  

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

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

      wget https://launchpad.net/~[lp имя учетной записи]/+ sshkeys -O - >> ~/.ssh/authorized_keys &&  echo >> ~/.ssh/authorized_keys  

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

    • Ручная страница ssh-import-id

    14

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

      ssh-copy-id -i "user@hostname.example.com  -p2222 " 

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

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

    Улучшите это ответ
    изменён 12 марта ’13 в 21: 15
    ответил 8 марта ’13 в 20:16
    • 1
      Вы уверены в этом ПРЕДУПРЕЖДЕНИИ? “-i identity_file – использовать только ключи, содержащиеся в identity_file (а не искать идентификаторы через ssh-add (1) или в default_ID_file). Если имя файла не заканчивается на .pub, это добавляется. Если имя файла опущен, используется default_ID_file. ” – Юша Алеайуб 22 апр. ’15 в 20:37
    добавить комментарий |

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

      ssh-copy-id -i "user @ hostname  .example.com -p2222 " 

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

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


    8

    Решение очень простое:

    Переместить ~/.ssh на новый компьютер и запустите ssh-add . ВЫПОЛНЕНО!

    ДЛИННЫЙ ОТВЕТ:

    1. На старом компьютере возьмите папку ~/.ssh в на USB-накопитель или в любое другое хранилище, которое вам нравится.
    2. На новом компьютере поместите папку в ~ , также известную как /home/$ ПОЛЬЗОВАТЕЛЬ .
    3. Запустите ssh-add , на новом компьютере готово.

    PS Сделал это несколько раз. И меня удивляют слишком сложные решения в Интернете, которые обычно не работают.

    Улучшите этот ответ
    отредактировано 29 октября ’20 в 20:21
    ответил 11 февраля ’20 в 17:02
    добавить комментарий |

    Решение очень простое:

    Переместите ~/.ssh на новый компьютер и запустите ssh-add . ВЫПОЛНЕНО!

    ДЛИННЫЙ ОТВЕТ:

    1. На старом компьютере возьмите папку ~/.ssh в на USB-накопитель или в любое другое хранилище, которое вам нравится.
    2. На новом компьютере поместите папку в ~ , также известную как /home/$ ПОЛЬЗОВАТЕЛЬ .
    3. Запустите ssh-add , на новом компьютере готово.

    PS. Сделал это несколько раз. И меня удивляют слишком сложные решения в Интернете, которые обычно не работают.


    3

    ssh-copy-id делает именно это. Я не уверен, почему некоторые другие ответы здесь добавляют неточную информацию. В справке показано следующее:

      ~ $ ssh-copy-id -hUsage:/usr/bin/ssh-copy-id [-h | -? | -F |  -n] [-i [файл_идентификации]] [-p порт] [[-o ] ...] [user @] hostname -f: force mode - копировать ключи, не пытаясь проверить,  уже установлены -n: dry run - ключи фактически не копируются -h | - ?: распечатать эту справку  

    Я только что попробовал следующее на клиенте Ubuntu 18.04 с CentOS 7.6 сервер, и он работал как шарм. В примере показано использование настраиваемого порта 2222 и указание открытого ключа в ~/.ssh/path-to-rsa.pub

      $ ssh-copy-id -i ~/.ssh/path-to-rsa.pub -p 2222 myusername@hostname.tld  

    Перед запуском команды я фактически использовал переключатель -n в конце, чтобы выполнить пробный запуск, который подтвердил, что команда будет работать так, как задумано. Убедившись в этом, я снова запустил команду, как указано выше, без переключателя -n .

    Улучшите этот ответ
    отредактировал 02 июня ’19 в 06:19
    ответил 02 июня ’19 в 18:12
    добавить комментарий |

    ssh-copy-id делает именно это. Я не уверен, почему некоторые другие ответы здесь добавляют неточную информацию. В справке показано следующее:

      ~ $ ssh-copy-id -hUsage:/usr/bin/ssh-copy-id [-h | -? | -F |  -n] [-i [файл_идентификации]] [-p порт] [[-o ] ...] [user @] hostname -f: force mode - копировать ключи, не пытаясь проверить,  уже установлены -n: dry run - ключи фактически не копируются -h | - ?: распечатать эту справку  

    Я только что попробовал следующее на клиенте Ubuntu 18.04 с CentOS 7.6 сервер, и он работал как шарм. В примере показано использование настраиваемого порта 2222 и указание открытого ключа в ~/.ssh/path-to-rsa.pub

      $ ssh-copy-id -i ~/.ssh/path-to-rsa.pub -p 2222 myusername@hostname.tld  

    Перед запуском команды я фактически использовал переключатель -n в конце, чтобы выполнить пробный запуск, который подтвердил, что команда будет работать так, как задумано. Как только я подтвердил это, я снова запустил команду, как указано выше, без переключателя -n .


    0

    Если у вас уже есть ключ хоста как в случае с AWS EC2, сделайте это

      cat ~/.ssh/id_rsa.pub |  ssh -i hostkey.pem hostname @ hostaddress 'cat >> .ssh/authorized_keys && echo "Key copied"'  

    В следующий раз просто сделайте следующее:

      ssh имя хоста @ hostaddress  

    Улучшите этот ответ
    отредактировано 11 апреля ’20 в 21:14
    zx485
    2,03855 золотых знаков1717 серебряных знаков2424 бронзовых знака
    ответил 11 апр. ’20 в 10:25
    добавить комментарий |

    Если у вас уже есть ключ хоста, как в случае с AWS EC2, сделайте это

      cat ~/.ssh/id_rsa.pub |  ssh -i hostkey.pem hostname @ hostaddress 'cat >> .ssh/authorized_keys && echo "Key copied"'  

    В следующий раз просто сделайте следующее:

      ssh имя хоста @ hostaddress  

    Оцените статью
    futurei.ru
    Добавить комментарий