ssh 免密钥导致问题排查

今天做两台linux机器进行ssh免密认证,死活还需要输入密码,经过排查,结果其实很可笑,就是B登录A (B--->A),本该把B的公钥copy到A机器上的authorized_keys中,结果copy反了,把B的公钥copy...

今天做两台linux机器进行ssh免密认证,死活还需要输入密码,经过排查,结果其实很可笑,就是B登录A (B--->A),本该把B的公钥copy到A机器上的authorized_keys中,结果copy反了,把B的公钥copy到了A机器上,从B机器登录A机器,无论如何也不可能免密。这里不记录结果,而是记录下排查思路,这里才是最要的。


排查如下:

A-->B 在A机器上 ssh B -vvvv 后面可以多加几个v,A机器登录会打印debug过程,这里只看到公钥不被B机器认可,但看不到为啥不被接受,如图:

attachments-2018-09-b5v8EJzT5b9e0dc2ea6f8.png


ssh登录中客户端的公钥不被接受,在客户端(A)是看不到的,要想看到公钥不被接受的原因,只能到服务器端(B)上打印,

首先在B端我们通过 /usr/sbin/sshd -d -p 33333 ,以DEBUG方式启动了一个ssh服务,端口是33333

在客户端(A)连接这个33333端口  ssh -p 33333 B       在服务端(B)上会打印出服务端的回应debug信息,这里可以清晰的看到为啥A上的public密钥不被接受,如下图:

attachments-2018-09-z8i0eU2u5b9e0edb48ee2.png

attachments-2018-09-Xh9HwymV5b9e0eecb0e4c.png


其中 显示来自客户端(A)上的公钥信息,及A的公钥不能认可的原因(fd 4 clearing O_NONBLOCK) 说明、/root/.ssh/authorized_keys 里面是空的,没有公钥信息,A的公钥没有比对对象,当然不会被B接受了。


通过这个case可以了解ssh通讯的过程,及查询的文件,对于免密的ssh的调试时很有帮助的。

  • 发表于 2018-09-16 16:10
  • 阅读 ( 47 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
石天
石天

437 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章