这篇文章主要介绍了如何解决SSH连接调试问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
SSH是专为远程登录会话和其他网络服务提供的安全性协议。利用SSH协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境运维工作中,绝大多数企业普通采用SSH协议服务来代替传统的不安全的远程联机服务软件,如telnet(23端口,非加密的)等。
SSH连接错误的常见原因是服务未在远程服务器上运行。这可能是由于服务意外关闭或系统重新启动后服务未启动而引起的。
要检查SSH服务是否正在运行,请运行下面命令:
[root@server1 ~]# systemctl status sshd
使用以下命令设置SSH服务开机启动,并启动服务:
[root@server1 ~]# systemctl enable sshd[root@server1 ~]# systemctl start sshd
调试SSH连接时的第二个常见问题是使用非标准端口。如果SSH在默认端口22以外的其他端口上运行,则除非明确指定运行SSH的端口,否则将不能连接到远程主机。
要查看运行SSH的端口,请使用netstat之类的工具,如下所示:
[root@clean-idea-1 ~]# netstat -tlunp|grep sshdtcp 0 0 0.0.0.0:28159 0.0.0.0:* LISTEN 818/sshd tcp6 0 0 :::28159 :::* LISTEN 818/sshd
上面的输出显示了SSH服务在哪个端口上运行。在这种情况下,它是端口28159。
端口不是默认的22时,连接就需要指定端口了:
[root@server1 ~]# ssh root@192.168.43.131 -p 28159
SSH连接错误的另一个原因是其他服务或进程是否也使用与SSH服务相同的端口。例如,SSH的端口号为80,这和http服务的端口冲突了,则类似Apache的服务可能正在使用相同的端口。
要查看其他进程是否正在使用与SSH相同的端口,请使用以下命令检查日志:
[root@server1 ~]# journalctl -t sshd
该命令应返回如下所示的错误,显示端口已被占用。
在这可以修改ssh的端口号,打开配置文件将端口修改为其他的,Port 2222
vim /etc/ssh/sshd_config Port 2222
如果尝试了上述所有方法,仍无法建立SSH连接,则可以看看防火墙是否阻止连接?
在Cetnos8中,使用fireawlld查看防火墙,并将端口添加允许里面:
[root@server1 ~]# firewall-cmd --list-all[root@server1 ~]# firewall-cmd --permanent --add-port=2222/tcpsuccess [root@server1 ~]# firewall-cmd --reloadsuccess
有时,您可以将SSH配置为不接受密码登录,而仅使用公密钥身份验证。如果公钥在服务器上不可用或缺少私钥对,则可能导致不能登录的问题。
要检查/etc/ssh/sshd_config
配置文件是否允许密码登录,请将ssh配置设置为如下:
[root@server1 ~]# grep PasswordAuthentication /etc/ssh/sshd_config#PasswordAuthentication yesPasswordAuthentication yes# PasswordAuthentication. Depending on your PAM configuration,# PAM authentication, then enable this but set PasswordAuthentication
上面的输出显示允许密码登录。
感谢你能够认真阅读完这篇文章,希望小编分享的“如何解决SSH连接调试问题”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。