为什么SSH每次都会要求我提供私钥密码


9

从昨天开始,每次我尝试连接ssh服务器时,都会要求我输入密码。我应该怎么做才能使SSH每次都不要求输入密码。


我盲目猜测:检查您的密钥是否已加载ssh-add -l
2012年

我假设您正在使用ssh键?如果您不使用密钥管理器并且拥有非空的密码短语,这是正常的。使用密钥管理器或为密钥创建一个空密码短语。我想推荐前者。

如果是“从昨天开始”,则可能只是您已更新系统,现在ssh-agent不再起作用。
Coren 2012年

Answers:


5

放入公共密钥,hostnachine:~/.ssh/authorized_keys并确保它具有适当的权限-chmod600。有关更多详细信息,请参见手册页的“身份验证”部分。请注意,尽管我无法理解为什么sshd可能配置为禁止这种登录方法。


谢谢,那行得通。但是,您能否解释一下为什么我必须将其放在authorized_keys中以及为什么以前没有它就可以工作。
Ben D

1
手册页在“身份验证”部分中包含信息。至于为什么它可以事前工作,我无法确定是否拥有对您的计算机的root访问权并进行一些取证工作。
Sardathrion-反对SE滥用2012年

2
如果您不想/不需要手动复制公钥,也可以使用ssh-copy-id将公钥自动复制到目标主机。
Coren 2012年

2

检查目录权限和文件权限。

$HOME 不能按组或其他方式写。

$HOME/.ssh需要具有700权限,不能按组和其他权限读取,写入或执行。

$HOME/.ssh/authorized_keys 禁止任何人写或执行。

如果发现权限不够严格,请尝试找出引起问题的原因。上次发生这种情况是我从头开始编译PHP。执行make install为根(Slackware的)更改的权限和所有权//home我记得,并保持SSH从工作authorized_keys,并id_rsa.pub已被取代文件和年龄的工作。您想确定导致问题的原因,因为由于安装了rootkit或类似的东西,目录所有权和/或权限可能发生更改。


这为我修复了该问题。修复了权限之后,我使用了“ ssh-add”添加了它。 ,它起作用了。我可以通过SSH到我的所有设备上,而不必每天键入我的私钥通行证300次以上!谢谢!
亨利·范·梅根
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.