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


52

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

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

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

谢谢。


是“ id_rsh错字吗?
ændrük

1
您可以通过尝试了解更多有关该问题的信息ssh -v -i ~/.ssh/id_rsa ssh-server
ændrük

尝试了。它似乎发送了密钥,但是从不要求输入密码来解密它们。我还收到一条奇怪的通用消息“服务器不允许漫游”。猜私钥只是不打算被复制;)。看起来我将只需要信任具有物理访问权的人员即可手动登录到我的服务器并更改ssh设置。谢谢你的帮助。
2012年

私钥绝对不能复制!这是一种安全风险。为每个新设备生成新密钥!
以太

Answers:


66

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

这些文件包含敏感数据,用户应可读取,但其他用户不可访问(读取/写入/执行)。如果其他人可以访问ssh,则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脚本以防万一。不幸的是,这对我的问题没有帮助。
2012年

@Johnツ这可能对我来说是问题的一部分,但似乎还有其他问题。我最终让某人实际登录到服务器并设置了新密钥。但是会接受这一点,因为它可能涵盖了一个关键问题。
Benj 2013年

@benj对我有用。
Sinthia V

14

ssh-add通过SSH进入服务器之前,请尝试运行-将会提示您输入密码,随后的ssh连接才能使用您的私钥。

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


1
我不认为这是问题所在,因为1)SSH客户端可以在没有功能密钥代理的情况下解决问题; 2)服务器不会用“不允许漫游”消息进行响应; 3)ssh客户端拥有自己的所有权与密钥代理交谈时出现错误消息,但以某种方式失败。我已经把我的想法变成了答案
gertvdijk

这为我解决了问题。另请参见Github文档
尼卡比曹

8

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

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

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

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

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

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

1
如果您的SSH连接有问题,这对于获得答案是一个非常有用的过程。谢谢。
Sinthia V
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.