我创建了一个私人/公共dsa密钥对。我已将公用密钥放在服务器中
~/.ssh/authorized_keys
一切都像其他服务器一样进行设置,但似乎该服务器只是忽略了我的工作。
/var/log/auth.log在Debian系统或/var/log/secureRedHat 系统上进行检查时,应向您提供明确的建议,以
我创建了一个私人/公共dsa密钥对。我已将公用密钥放在服务器中
~/.ssh/authorized_keys
一切都像其他服务器一样进行设置,但似乎该服务器只是忽略了我的工作。
/var/log/auth.log在Debian系统或/var/log/secureRedHat 系统上进行检查时,应向您提供明确的建议,以
Answers:
尽管您的问题可能已经通过其他答案解决了,但是我已经退出了足够的计算机,无法在注销之前不验证sshd_config更改,因此提出了以下过程,该过程可能对将来调试sshd config更改很有用:
在测试后确认行为符合您的预期之前,请勿断开活动的ssh连接。
一种。验证您认为sshd应该在做什么
b。使用“ -t”验证配置是否有效
C。启动您可以实时监控的服务器的详细“测试”版本
d。启动可以实时监控的详细“测试”客户端连接
一种。验证您认为sshd应该在做什么
复查sshd配置文件,而不用如下所示的所有注释(假设sshd_config是正确的文件,并且在/ etc / ssh中)
$ grep -v“ ^#” / etc / ssh / sshd_config | grep -v“ ^ $”
这只是清除了所有内容,因此我们可以验证自己认为正在更改的内容(不一定正确或不正确。)
b。使用“ -t”验证配置是否有效
在我正在使用的sshd的手册页中,
-t测试模式。仅检查配置文件的有效性和密钥的完整性。这对于可靠地更新sshd很有用,因为配置选项可能会更改。
其他更改可能会有更微妙的情况。例如,在确定公共密钥身份验证正常之前,请不要禁用密码身份验证。
C。启动您可以实时监控的服务器的详细“测试”版本
$ sudo / usr / sbin / sshd -ddd -p 9999
这样可以使您现有的工作会话保持活动状态,但是又为您提供了另一个sshd实例来验证您的新配置更改。SSHD现在在用户定义的端口(在我们的示例中为9999)的前台运行,并推送了许多可以在/ var / log / authlog(或可能的/var/log/auth.log,取决于在您的操作系统上。)
d。启动可以实时监控的详细“测试”客户端连接
以详细模式运行ssh客户端连接,以在屏幕上显示更多信息,这些信息可能会导致您更好地调试错误。
$ ssh -vvv -p 9999服务器名称
现在,您应该在服务器的日志文件或客户端的连接屏幕中具有足够的信息,以找出问题所在。
解决方案通常取决于文件权限(如Magnar和setatakahashi所示)
祝你好运
如果所有者属性错误,服务器将忽略您的authorized_keys文件。将其更改为此可以解决:
chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/authorized_keys
0775和0644。为什么减少权限会有帮助?这是在某处配置的安全预防措施吗?
$ chmod 700〜
$ chmod 700〜/ .ssh
$ chmod 600〜/ .ssh / authorized_keys
在/ etc / ssh / sshd_config中检查这些属性
$ sudo grep PubkeyAuthentication / etc / ssh / sshd_config
$ sudo grep协议/ etc / ssh / sshd_config
$ chmod 600 ~/.ssh/authorized_keys否$ chmod 600 ~/.sHh/authorized_keys
/etc/ssh/ssh_config并/etc/ssh/sshd_config确认您所需的内容均未禁用。