ssh 公钥验证无效

在设置 ssh 免秘钥登陆的时候,经常碰到设置无效,还是需要输入登陆的情况。这种问题怎么排查呢?

一种方式是给ssh-v选项,但是这个选项输出来的日志往往没什么用。最好的方式是直接让远程机器上的sshd进程输出 debug 信息。

首先,你可以单独再起一个sshd进程,开启调试模式,为了不影响当前的登陆,可以选择另外的端口。例如sudo /usr/sbin/sshd -d -p 80,这样就在 80 端口上起了一个ssh进程。然后,你可以通过-p选项指定 ssh 的端口ssh -p 80 user@ip

这样就可以在远程服务器上看到调试信息了。


ssh-2

这里的问题是~/.ssh目录的权限不对,~/.ssh/目录以及~/.ssh/authorized_keys文件必须都只能你自己拥有写入权限。

修复办法,运行chmod 700 ~/.ssh

linux 里每个文件都有 rwx 三个权限位,3 个二进制位来表示就是,7 对应的就是111,也就是拥有 rwx 的全部权限。同时,每个文件又都有三组权限,分别对应所有者,用户组和其他人。其他两个权限组都是 0,也就是什么权限都没有。

另外,如果想直接调试当前的sshd服务的话,需要运行:

service ssh stop
/usr/sbin/sshd -d

你可能感兴趣的:(ssh 公钥验证无效)