【linux杂谈】在SSH连接中,openssh如何解决’Connection refused’错误?

openssh是SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。

这就意味着远程登陆,文件推拉特别是搭建集群后公钥的部署,经常要利用到openssh。本人之前搭建hadoop集群模式的时候,公钥投送就和ssh相关,如今搭建ansible测试环境的时候,再一次用到了ssh相关技术。

在向被管控机器投送公钥的时候,使用到了ssh-copy-id命令,但提示我connection refused。连输入密码那一步都没到,可见是直接进行了拒绝,和密码验证这些模块都没有关系。

会不会是防火墙本身原因或者是协议控制,或者是端口占用?下面这篇文章给出了10种可能。

https://www.helplib.com/ubuntu/article_157064

但很可惜,经过我的测试,在我的机子上这几种都不是。都不是。。。

简直心态爆炸有没有。多亏同组大佬,通过丰富经验,看到被登录的主机用户为root,考虑是不是被控机禁止ssh登录root的问题。要检查这个问题,我们需要查看/etc/ssh/sshd_config这个文件。如下图

果然,这里有个选项

该选项禁止了root的登录。我们把这一项改成yes。并保存后退出。

之后再回到主控机上进行公钥复制操作,发现得到了正常响应!

最后,就是激动人心的时刻,验证ansible的ping操作。

 

 ping,pong!