如何debug秘钥ssh连接时失败问题-授人以渔手段

传统那些检查端口、防火墙、秘钥对不对之类的流程请查阅别处,咱们就不提了

来点高级的,在上面这些查了都没问题的情况下,秘钥就是不生效,还是得输入密码,怎么排查?

开启服务器端的log

以下都需要root权限,docker内的root也可以

vi /etc/ssh/sshd_config

把下面这俩前面的注释取消,使生效

# Logging
SyslogFacility AUTH
LogLevel VERBOSE

确保下面这行是没被注释的:

PubkeyAuthentication yes

把sshd开到前端便于看log

很多说通过/var/log/xxx 看日志的,有时候没这个文件,有时候没这个权限等等,并不可行

step1 关闭ssh服务

对,没看错,service sshd stop 或者 service ssh stop 或者 systemctl stop sshd.service 等,需要在自己的环境下确认下哪个能用

step2 人工开启sshd

which sshd看一下sshd的完整路径,比如是 /usr/sbin/sshd

执行:/usr/sbin/sshd -d

解释:手动开启ssh服务,-d 是debug模式,前面关闭ssh是因为不关的话会占用端口,这里就不能手动开启了

客户端触发连接

ssh -pxxxx xxx@xxx -v,在连接命令的后面加个 -v

执行命令后客户端和服务端都会有log打印,一般是服务端的信息比较有价值,会提示拒绝秘钥的原因,比如home目录权限有问题、秘钥文件权限等等的,自行看log修复吧

恢复ssh守护进程

把刚才的 sshd -d程序退出,然后参考前面关闭ssh服务的命令,stop换成start开启服务就好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值