当前位置: 首页>>技术教程>>正文


将ssh私钥复制到另一台计算机

,

问题描述

我需要使用另一台计算机来访问我的ssh服务器。这是因为我大学最近实施的vpn无法在我当前的计算机上运行,​​而且我无法访问服务器。

我通过加密的ssh密钥ssh。我可以将这些密钥复制到新计算机(vpn所在的计算机上)。我尝试在~/.ssh文件夹中复制id_rsaid_rsa.pub文件,但它无法识别密钥,也没有提示输入密码来解密密钥。

编辑:我无法访问服务器为新计算机生成新的密钥对,并且我不在国外,因此无法访问它。

谢谢。

最佳解决办法

检查私钥文件的权限和所有权。来自the manual

These files contain sensitive data and should be readable by the user but not accessible by others (read/write/execute). ssh will simply ignore a private key file if it is accessible by others.

通常,密钥文件应如下所示,

$ 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

次佳解决办法

在SSH进入服务器之前尝试运行ssh-add – 然后应该提示您输入密码,然后后续的ssh连接可以使用您的私钥。

ssh-add命令将密钥添加到密钥代理。

第三种解决办法

加密的私钥保持未加密的相应公钥。这就是SSH客户端如何在不向您询问密码的情况下连接到远程服务器的方式(此时它仅提供公共部分)。每当服务器接受公钥时,PC上的客户端都希望解密私钥并询问密码。

现在,只要服务器只接受来自特定IP地址的连接,就会在第一步中拒绝该连接,并解释从服务器“服务器不允许漫游”的消息。

因此,我最好的猜测是,您的服务器在某种程度上受到限制,只允许此密钥的特定IP地址。您可以通过多种方式执行此操作,但这是~/.ssh/authorized_keys中的常见方法:

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

要证明您可以在没有密码的情况下从加密的私钥中读取公钥,请运行:

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2229.html,未经允许,请勿转载。