我有su
特权用户foouser
上target.host
。我进入它的~/.ssh
目录并从id_rsa.pub
. 我也将它添加到authorized_keys
.
我想ssh
从另一台服务器启用。我去了另一台服务器并保存了公钥/path/to/foouser.pub
并尝试运行:
ssh -i /path/to/foouser.pub foouser@target.host
但仍然提示输入密码。为什么?SSH 主机上 foouser 的 ssh 配置是否需要更改?
您需要使用带有-i
标志的私钥,而不是公钥。
由于您的公钥无法通过基于相同公钥的其他服务器发送的质询(非对称加密,要求您使用私钥来回答基于公钥的质询),那么当密钥认证失败时ssh
继续尝试其他身份验证方法,包括密码。
非对称加密的工作方式是您的私钥是保密的。 不应与任何人共享;它甚至不应该从创建它的主机上复制出来。(当然不应该通过电子邮件发送!)
该公共密钥可以到处发送。
用公钥加密的数据只能用私钥解密,用私钥加密的数据只能用公钥解密。
从数学上讲,在 RSA 算法中,这两个密钥之间没有功能差异,只是其中之一必须保密。但是,在实际的 SSH 实现中,这两个密钥是有区别的,看起来也不同,因此请确保:
ssh -i
. (如果你把你的公钥传递给 没有坏处-i
,它就是行不通的。)如果您曾经共享过您的私钥或将其复制到目标服务器,请生成一个新密钥并删除旧密钥。
我只是更仔细地查看了您执行的步骤。您需要备份并重新开始。此时,您应该删除foouser
on的密钥对,target.host
并从您放入的任何授权密钥文件中删除该公钥。永远不要复制私钥。
请注意,从 someother.host SSH 到 foouser@target.host 不需要 foouser 甚至有一个密钥对。
什么是需要的是你生成密钥对上someother.host用户数,你会以ssh方式连接的,而且你把公众认为对钥匙插入~foouser/.ssh/authorized_keys
上target.host
。
简单的一步一步,但省略了你现在应该做的安全清理步骤,因为你复制了一个私钥。只是设置连接的简单方法:
startserver.host
,以用户身份startinguser
运行ssh-keygen
。您可以设置密码或不设置密码;由你决定。(A密码增加了额外的安全性的情况下,私钥不会得到折扣。)只需按在每个提示输入将创建使用默认设置的密钥对,这是罚款。cat ~/.ssh/id_rsa.pub
,显示公共密钥。target.host
) 并将其附加到~foouser/.ssh/authorized_keys
.startserver.host
,运行ssh foouser@target.host
。你不需要-i
国旗。要回答评论:
如果永远不应该复制私钥——你能解释一下
ssh -i
当它需要私钥时有什么好处吗?
您生成主机上的密钥对,从中要ssh
到其他服务器。
您的私钥保留在该服务器上,永远不会复制到其他地方。(也许它在您的备份中。也许不是。但为了使用,它永远不会复制到其他地方。)
你的公共密钥复制到每个服务器要登录访问,特别是附加到authorized_keys
文件中.ssh
你希望能够登录为该服务器上的用户的主目录的目录。
使用此设置(默认设置),您将永远不需要-i
. 但是,您自己的计算机上可能有多个用于不同目的(不同服务器集)的密钥对。重点-i
是能够指定一个备用位置,您的私钥身份将从该位置读取。您可以使用cd ~/.ssh; mv id_rsa id_rsa.bak; mv id_rsa.other id_rsa
和ssh ...
不使用 来实现相同的效果-i
。不过-i
比较方便。
归档时间: |
|
查看次数: |
6331 次 |
最近记录: |