Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我可以通过SSH连接而不使用所需的私钥?_Ssh - Fatal编程技术网

为什么我可以通过SSH连接而不使用所需的私钥?

为什么我可以通过SSH连接而不使用所需的私钥?,ssh,Ssh,我试图通过SSH连接到服务器,使用连接成功所需的私钥 ssh -i <path-to-my-private-key> <user>@<server-ip> ssh-i@ 它起作用了。然而,即使我没有使用私钥,或者如果我使用了错误的私钥,它也可以工作,但不应该。为什么工作?如果您的意思是通过运行ssh-ubuntu@而不使用-i选项就可以成功登录到服务器,那么您可能正在运行ssh-agent ssh-agent将私钥缓存在内存中,以便它们可以用于身份验证,而

我试图通过SSH连接到服务器,使用连接成功所需的私钥

ssh -i <path-to-my-private-key> <user>@<server-ip>
ssh-i@

它起作用了。然而,即使我没有使用私钥,或者如果我使用了错误的私钥,它也可以工作,但不应该。为什么工作?

如果您的意思是通过运行
ssh-ubuntu@
而不使用
-i
选项就可以成功登录到服务器,那么您可能正在运行
ssh-agent

ssh-agent
将私钥缓存在内存中,以便它们可以用于身份验证,而无需在每个连接上输入密码


正如@jarmod指出的,也可能是您在
~/.ssh/config
文件中为目标主机配置了私钥。例如:

Host my-ec2-url
  IdentityFile ~/.ssh/something-not-named-id_rsa

…尽管这种情况不太可能发生,因为除非您创建了一个不受保护的私钥,否则这仍会提示您输入密钥密码短语(显然需要与您在远程主机上配置的公钥相匹配).

如果您的意思是通过运行
ssh ubuntu@
而不使用
-i
选项就可以成功登录到服务器,则可能是您正在运行
ssh agent
,该代理将私钥缓存在内存中。您的私钥是默认提供的,可能是因为您在
~/.ssh/config
@larsks中有一个
主机*
条目,谢谢。我一定是在学习教程时使用了
ssh代理
,我没有花时间去理解它的功能。@jarmod我没有
~/.ssh/config
好的,我们现在知道它是ssh代理,但它可能是
~/.ssh/config