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


52

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

Я ssh через зашифрованные ключи ssh. Могу ли я скопировать эти ключи на новый компьютер (на котором работает vpn). Я попробовал копирование id_rsaи id_rsa.pubфайлы в ~/.sshпапке , но не распознают ключи и нет строки для ввода пароля для расшифровки ключей.

РЕДАКТИРОВАТЬ: Я не могу получить доступ к серверу для создания новой пары ключей для нового компьютера, и я нахожусь за пределами страны, поэтому не могу получить физический доступ к нему.

Благодарю.


Это id_rshопечатка?
ændrük

1
Вы можете узнать больше о проблеме, попробовав ssh -v -i ~/.ssh/id_rsa ssh-server.
rndrük

попробовал это. Кажется, что отправляет ключи, но никогда не запрашивает пароль для их расшифровки. Я также получаю странное общее сообщение «Роуминг запрещен сервером». Угадай, закрытые ключи просто не предназначены для копирования;). Похоже, мне просто нужно доверять кому-то с физическим доступом, чтобы вручную войти на мой сервер и изменить настройки ssh. Спасибо за вашу помощь.
Бендж

Закрытые ключи никогда не должны копироваться! ЭТО РИСК БЕЗОПАСНОСТИ. Генерация новых ключей для каждого нового устройства !!!!
эфир

@Ether Это правда? Что если вам нужно переформатировать машину? Просто сдуть ключ и начать все заново?
Ниппонский

Ответы:


66

Проверьте права доступа и владение вашим файлом закрытого ключа. Из руководства ,

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

Обычно ключевые файлы должны выглядеть так:

$ ls -l ~/.ssh/id_rsa*
-rw------- 1 benj benj 1766 Jun 22  2011 .ssh/id_rsa
-rw-r--r-- 1 benj benj  388 Jun 22  2011 .ssh/id_rsa.pub

который вы можете применить через:

$ chown benj:benj ~/.ssh/id_rsa*
$ chmod 600 ~/.ssh/id_rsa
$ chmod 644 ~/.ssh/id_rsa.pub

2
Благодарю. Это полезно знать. Когда вы копируете файл на другой компьютер, полномочия для этого пользователя, похоже, меняются. Я запустил сценарии chmod и chown на всякий случай. К сожалению, это не помогло моей проблеме.
Бендж

@ Джон ツ это могло быть частью проблемы для меня, но, похоже, были и другие проблемы. В конце концов я получил кого-то физически войти на сервер и установить новый ключ. Но приму это, поскольку это, вероятно, охватывает ключевой вопрос.
Бендж

У меня это сработало, @benj.
Синтия V

14

Попробуйте запустить ssh-addSSH перед тем, как подключиться к серверу, после чего вам будет предложено ввести пароль, а затем при последующих sshподключениях вы сможете использовать ваш закрытый ключ.

Команда ssh-addдобавляет ключи к ключевому агенту.


1
Я не думаю, что это проблема, так как 1) клиент SSH может справиться без агента функционального ключа, 2) сервер не ответил бы сообщением «роуминг не разрешен» и 3) у клиента ssh было бы свое Сообщение об ошибке при разговоре с ключевым агентом каким-то образом завершается неудачей Я сделал мои мысли об этом ответом .
gertvdijk

Это решило проблему для меня. Также см. Документацию Github для этого .
Ионика Бизэ

8

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

Теперь, когда сервер принимает соединение только с определенного IP-адреса, он отклоняется уже на первом этапе и объясняет сообщение, полученное с сервера «Роуминг запрещен сервером».

Итак, я думаю, что ваш сервер каким-то образом ограничен, чтобы разрешить только определенные IP-адреса для этого ключа. Вы можете сделать это несколькими способами, но это распространено в ~/.ssh/authorized_keys:

from="192.168.1.2" ssh-rsa AAAAB3NzaC[...]

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

ssh-keygen -y -f /path/to/private/key

1
Это хороший полезный процесс для получения ответа, когда у вас есть проблема с SSH-соединением. Спасибо.
Синтия V
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.