У меня есть учетные записи на двух машинах: 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 будут авторизованы два открытых ключа. И вы сможете отозвать любой из них или оба (например, если ваш блокнот украден, или владелец машины решит отключить вашу учетную запись и повторно использовать все ваши файлы).
Используйте ssh-copy-id
ОБЗОР
ssh-copy-id [-i [файл_идентификации]] [пользователь @] компьютер
ОПИСАНИЕ
ssh-copy-id – это сценарий, который использует ssh для входа на удаленный компьютер и добавления указанного файла идентификации в файл ~/.ssh/authorized_keys на этой машине.
-
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 на этом компьютере.
Используйте два частных ключи
Настройте 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 августа 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
.
(подробнее).
Для смещения ключей 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)
Теперь он будет работать нормально.

-
копирование ключей (он сказал, что установка) было тем, о чем он просил, а не тем, как устанавливать разрешения или входить в систему. 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)
Теперь он будет работать нормально.
Все вопросы здесь касаются проблемы копирования идентичности с одного сервера на другой с использованием ssh-copy-id
, что не является предметом вопроса.
Проблема в том, что вопросы, которые, похоже, задаются: , как использовать ту же пару закрытого и открытого ключей, сгенерированную и используемую на персональном компьютере (H1), можно использовать на другом персональном компьютере (H2), чтобы не настраивать новый закрытый-открытый ключ и вручную добавить его на каждый сервер, к которому мы подключались .
Это не рекомендуется из соображений безопасности, как широко упоминалось другими, однако можно достичь, выполнив следующие шаги:
- Скопируйте личные (например,
~/.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
- В 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
- Заключительный шаг. на H2 теперь используйте команду
ssh-add ~/.ssh/id_rsa
, чтобы разрешить использование пары закрытый-открытый ключ для идентификации себя с H2 на любой сервер, к которому вы подключитесь через используя импортированный закрытый-открытый ключ.
Теперь любая команда ssh
или scp
, например ssh yourUserName @ ip-address
должен пройти успешно, как если бы вы вошли в H1.
Соображения безопасности:
- ПОЖАЛУЙСТА, УЧИТЬТЕ ДРУГИЕ ПРЕДЛОЖЕНИЯ ДЛЯ ПОВЫШЕНИЯ БЕЗОПАСНОСТИ, АКА СОЗДАЙТЕ НОВУЮ ПАРУ ЧАСТНЫХ КЛЮЧЕЙ
- Единственный случай, когда Я считаю, что это будет полезно при переходе к новой машине навсегда, так что H2 станет вашим основным компьютером, а H1 больше не будет использоваться;
- Если вы все еще используете H1 и H2 , нет веских причин для использования той же пары закрытого и открытого ключей из H2.

Все вопросы здесь касаются проблемы копирования идентичности с одного сервера на другой с использованием ssh-copy -id
, вопрос не в этом.
Проблема, которую, кажется, задают вопросы, заключается в , как использовать тот же закрытый-открытый ключ пара, сгенерированная и используемая на персональном компьютере (H1), может быть использована на другом персональном компьютере (H2), чтобы не нужно было настраивать новый закрытый-открытый ключ и вручную добавлять его на каждый сервер, который мы использовали для подключения к .
Это не рекомендуется из соображений безопасности, о чем широко упоминалось другими, однако этого можно добиться с помощью следующих шагов:
- Скопируйте личные (например,
~/.ssh/id_rsa
) и общедоступные (например,~/.ssh/id_rsa.pub
) с вашего компьютера H1 на ваш компьютер H2 в расположении~/.ssh
(делайте это только через надежный USB-накопитель, который вы потом отформатируете, не используйте электронную почту или любой другой интернет-b усредненная среда). Когда вы выполните следующую команду в H2ls -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
- На 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
- Заключительный шаг. на H2 теперь используйте команду
ssh-add ~/.ssh/id_rsa
, чтобы разрешить использование пары закрытый-открытый ключ для идентификации себя с H2 на любой сервер, к которому вы подключитесь через используя импортированный закрытый-открытый ключ.
Теперь любая команда ssh
или scp
, например ssh yourUserName @ ip-address
должен завершиться успешно, как если бы вы вошли в H1.
Соображения безопасности:
- ПОЖАЛУЙСТА, УЧИТЬТЕ ДРУГИЕ ПРЕДЛОЖЕНИЯ ДЛЯ ПОВЫШЕНИЯ БЕЗОПАСНОСТИ, ИНАЧЕ СОЗДАВАЙТЕ НОВУЮ ПАРУ ЧАСТНО-ОБЩЕСТВЕННЫХ КЛЮЧЕЙ
- Единственный случай, когда Я считаю, что это будет полезно при переходе к новой машине навсегда, так что H2 станет вашим основным компьютером, а H1 больше не будет использоваться;
- Если вы все еще используете H1 и H2 , нет веских причин для использования той же пары закрытого и открытого ключей из H2.
Будет ли ssh-copy-id выполнять эту работу за вас: http://linux.die .net/man/1/ssh-copy-id?
-
@ Я хочу выполнить 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- идентификатор-копии?
Перенести ключи используя scp
следующим образом:
scp/home/[userpting/.ssh/id_rsa* user @ ip:/home/[user ]/. ssh/
Перенесите ключи с помощью 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 "
Мне нравится ответ Марселя. Я не знал этой команды. Я всегда использовал то, что нашел на веб-сайте 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 "Ключ скопирован" '

-
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
Мне нравится ответ Марселя. Я не знал этой команды. Я всегда использовал то, что нашел на веб-сайте 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 "Ключ скопирован" '
Графический метод
- Открытие приложений ▸ Пароли и ключи ▸ Мои личные ключи .
- Выберите свой ключ и затем нажмите Remote ▸ Настроить ключ для защиты Оболочка .
-
1В моем меню нет “Паролей и ключей шифрования”. – Хорхе Кастро, 27 сен., 20:33
морской конек
. – Жиль ‘SO – перестань быть злым’ 27 сен 2010 в 21:12 Графический метод
- Откройте Приложения ▸ Пароли и ключи ▸ Мои личные ключи .
- Выберите свой и нажмите Remote ▸ Настроить ключ для Secure Shell .
В Ubuntu вы можете получить свои ключи из Launchpad:
ssh-import-id [имя учетной записи на панели запуска]
Подробности :
- Вам нужна учетная запись 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 имя учетной записи]/+ sshkeys -O - >> ~/.ssh/authorized_keys && echo >> ~/.ssh/authorized_keys
Команда echo
необходима для получения дополнительной новой строки после строки с ключом SSH.
- Ручная страница ssh-import-id
В Ubuntu вы можете получить свои ключи с Launchpad:
ssh-import- id [имя учетной записи панели запуска]
Подробности :
- Вам потребуется учетная запись панели запуска, чтобы войдите или создайте учетную запись.
- После входа в систему нажмите кнопку рядом с 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 имя учетной записи]/+ sshkeys -O - >> ~/.ssh/authorized_keys && echo >> ~/.ssh/authorized_keys
Команда echo
необходима для получения дополнительной новой строки после строки с ключом SSH.
- Ручная страница ssh-import-id
для настраиваемого порта
ssh-copy-id -i "user@hostname.example.com -p2222 "
-i по умолчанию переключатель ~/.ssh/id_rsa.pub, если вам нужен другой ключ, укажите путь к нему после -i
ПРЕДУПРЕЖДЕНИЕ: Если вы не указали -i, он скопирует все ваши ключи, найденные в ~/. ssh

-
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
Решение очень простое:
Переместить ~/.ssh
на новый компьютер и запустите ssh-add
. ВЫПОЛНЕНО!
ДЛИННЫЙ ОТВЕТ:
- На старом компьютере возьмите папку
~/.ssh
в на USB-накопитель или в любое другое хранилище, которое вам нравится. - На новом компьютере поместите папку в
~
, также известную как/home/$ ПОЛЬЗОВАТЕЛЬ
. - Запустите
ssh-add
, на новом компьютере готово.
PS Сделал это несколько раз. И меня удивляют слишком сложные решения в Интернете, которые обычно не работают.

Решение очень простое:
Переместите ~/.ssh
на новый компьютер и запустите ssh-add
. ВЫПОЛНЕНО!
ДЛИННЫЙ ОТВЕТ:
- На старом компьютере возьмите папку
~/.ssh
в на USB-накопитель или в любое другое хранилище, которое вам нравится. - На новом компьютере поместите папку в
~
, также известную как/home/$ ПОЛЬЗОВАТЕЛЬ
. - Запустите
ssh-add
, на новом компьютере готово.
PS. Сделал это несколько раз. И меня удивляют слишком сложные решения в Интернете, которые обычно не работают.
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
.

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
.
Если у вас уже есть ключ хоста как в случае с AWS EC2, сделайте это
cat ~/.ssh/id_rsa.pub | ssh -i hostkey.pem hostname @ hostaddress 'cat >> .ssh/authorized_keys && echo "Key copied"'
В следующий раз просто сделайте следующее:
ssh имя хоста @ hostaddress

Если у вас уже есть ключ хоста, как в случае с AWS EC2, сделайте это
cat ~/.ssh/id_rsa.pub | ssh -i hostkey.pem hostname @ hostaddress 'cat >> .ssh/authorized_keys && echo "Key copied"'
В следующий раз просто сделайте следующее:
ssh имя хоста @ hostaddress