ssh无密码登录失败分析

ssh-keys.png

好久之前在公司的 PC 机上设置了 alias 登录服务器,感觉挺方便的.例如:

alias 184='ssh -lroot xxx.xxx.xxx.184'

输入 184 就可以登录到 IP 以184结尾的服务器上了.可是后来有些服务器修改了密码,不再使用默认密码了,随着这种情况越来越多,想记住密码也越来越难.

想不用自己记住密码,选择有两个:一种是使用 expect 做登录时自动填写密码;另一种是使用 ssh 的公钥,免密码登录.看起来 ssh 至少不需要写代码,我又懒得要死,所以就选了免密码登录.

ssh免密码登录的设置

这个方法真的是非常简单先在本机生成ssh公钥和密钥,输入 ssh-keygen 然后一路回车,搞定.

# ssh-keygen 

接下来将 ~/.ssh/id_rsa.pub 中的内容复制进 ~/.ssh/authorized_keys 里面就可以了.

# 184
vod_dev:~ # 

按照这个方法我很快的搞定了大部分的服务器免密码登录,就剩下一台服务器尝试了好几遍都不行.

在 ssh 客户端找问题

我首先想到的是看看 ssh 登录命令的输出中能不能看出什么问题.

# ssh -lroot -vv 10.18.207.25

debug2: we sent a gssapi-with-mic packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug2: we did not send a packet, disable method
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/likewise-open/HISENSE/jiangxun1/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Offering DSA public key: /home/likewise-open/HISENSE/jiangxun1/.ssh/id_dsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/likewise-open/HISENSE/jiangxun1/.ssh/id_ecdsa
debug1: Trying private key: /home/likewise-open/HISENSE/jiangxun1/.ssh/id_ed25519
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
root@10.18.207.253's password:

最先吸引我注意力就是ssh回去查找id_dsa这个文件作为私钥,而本机只有id_rsa,我猜测是因为服务器是因为设置不同,需要使用 dsa 作为加密算法.那么就想办法让我使用的PC机产生 id_dsa 文件.

# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/likewise-open/HISENSE/jiangxun1/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/likewise-open/HISENSE/jiangxun1/.ssh/id_dsa.
Your public key has been saved in /home/likewise-open/HISENSE/jiangxun1/.ssh/id_dsa.pub.
The key fingerprint is:
d3:26:96:59:12:f6:f2:e6:f8:73:bc:e4:b1:4b:5a:31 HISENSE\jiangxun1@jiangxun1c1
The key's randomart image is:
+--[ DSA 1024]----+
| o |
| . o |
| o o |
| O |
| S = E |
| . B o |
| . ..= |
| ..*oo |
| oo=o |
+-----------------+

在ssh的服务器端查找问题.

产生 RSA 的密钥后,问题依旧.这个时候我就有些没有头绪了,猜想也许需要重启启动一下服务器上的 sshd 才能起作用吧.

[root@jhx /]# systemctl restart sshd
[root@jhx /]#

重启后依旧不能免密码登录,而且 sshd 重启后在终端里一点输出都没有,都不知 ssh 是否已经重新启动,更重要的是服务器的 sshd 在收到免密码登录请求时,是否报错?

我对 Linux 的日志输出的设置不了解,又一时没有想到什么的关键词去搜索,就直接本机 grep 搜索了,确实很 low,不过好在很快就找到了 ssh 的日志放在了 /var/log/secure 文件里.ssh 重启后可以看到下面的几行输出,证明 sshd 是正常重启了.

May 28 12:54:30 jhx sshd[27117]: Received signal 15; terminating.
May 28 12:54:30 jhx sshd[28262]: Server listening on 0.0.0.0 port 22.
May 28 12:54:30 jhx sshd[28262]: Server listening on :: port 22.

并且找到了之前免密登录时的报错信息:

May 28 11:41:34 jhx sshd[27313]: Authentication refused: bad ownership or modes for directory /root
May 28 11:41:34 jhx sshd[27313]: Authentication refused: bad ownership or modes for directory /root

报错信息非常明显,就是 /root 目录的权限和所有权设置不正确.接下来我就到google上去搜这条报错信息了,找到了这篇文章,文章中的主要解决方案就是修改权限,但是改过之后问题照旧.
SSH Authentication Refused: Bad Ownership or Modes for Directory

现在回过头来想,真的应该好好在本机上分析一下原因,而不是不停的在搜索引擎上不停的找现成的解决方案.
当然最终我还是因为对 google 的依赖,一条道走到黑了.在网上瞎晃了半个小时以后,我终于在服务器上发现了 /root 目录的问题所在./root 目录的所有者居然不是 root.

# ll /

drwxr-xr-x. 15 1054761 1049089 4096 May 28 11:36 root

修改之后,终于可以成功的免密码登录了.

chown root:root /root

总结

以前我就遇到过ssh免密总是无法成功的情况,一直没有找到解决办法.这次终于算是解决了.不过复盘自己分析问题的过程,还是可以发现自己过于依赖搜索引擎和stackoverflow,总是想找到完全符合自己问题的答案.更严重的问题是我自己还没有意识到这其实是不正确思考方式.缺乏自己分析和解决问题的意愿,以后遇到问题一定要先主动分析,看看自己能不能凭借自己的力量解决,实在是没有思路再去搜索引擎上寻求帮助,把搜索引擎当做场外的援助,而千万不能让搜索引擎替代自己思考.

最后搜索了一下 CentOS7 的日志输出设置,这篇文章讲的挺清楚的:
SSHD is not logging in /var/log/secure

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容