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

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

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

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

Спасибо.

38
задан 10 May 2012 в 18:41

3 ответа

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

Эти файлы содержат конфиденциальные данные и должны быть прочитаны пользователем, но недоступны другим (чтение / запись / выполнение). 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
37
ответ дан 25 May 2018 в 11:36
  • 1
    Благодарю. Это полезно знать. Когда вы копируете файл на другой компьютер, разрешения, похоже, меняются на этого пользователя. Я запустил скрипты chmod и chown на случай. К сожалению, это не помогло моей проблеме. – benj 11 May 2012 в 13:35
  • 2
    @John ツ это могло быть частью проблемы для меня, но, похоже, были другие проблемы. В конечном итоге я заставил кого-то физически войти на сервер и настроить новый ключ. Но он примет это, поскольку он, вероятно, охватывает ключевой вопрос. – benj 13 December 2013 в 21:27

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

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

11
ответ дан 25 May 2018 в 11:36
  • 1
    Я не думаю, что это проблема, так как 1) клиент SSH может справиться без функционального ключевого агента, 2) сервер не ответил бы «роуминг не разрешен», и 3) у клиента ssh будет собственное сообщение об ошибке при некотором обращении с ключевым агентом. Я сделал свои мысли об этом ответом . – gertvdijk 16 January 2013 в 18:44
  • 2
    Это поставило проблему для меня. Также см. Документацию Github для этого . – Ionică Bizău 21 August 2013 в 10:03

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

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

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

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

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

ssh-keygen -y -f /path/to/private/key
6
ответ дан 25 May 2018 в 11:36

Другие вопросы по тегам:

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