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

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

我需要使用另一台计算机来访问我的 ssh 服务器。这是因为我所在大学最近实施的 vpn 无法在当前计算机上使用,因此我失去了对服务器的访问权限。

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

编辑:我无法访问服务器来为新计算机生成新的密钥对,而且我在国外,所以无法物理访问它。

谢谢。

答案1

检查你的私钥文件的权限和所有权。从手册

这些文件包含敏感数据,应该仅供用户读取,但不能被其他人访问(读/写/执行)。如果其他人可以访问私钥文件,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

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

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

答案3

加密的私钥保存其对应的公钥未加密。这就是 SSH 客户端无需询问密码即可连接到远程服务器的方式(此时它仅提供公共部分)。每当服务器接受公钥时,您 PC 上的客户端都会解密私钥并要求您输入密码。

现在,每当服务器仅接受来自特定 IP 地址的连接时,这在第一步就已经被拒绝,并解释您从服务器收到的消息“服务器不允许漫游”。

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

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

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

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

相关内容