合 可以ping通,但ssh报错:ssh: connect to host 100.8.6.26 port 22: Connection refused
Tags: 故障处理LinuxOSsshConnection refusedping通
现象
可以ping通,但是不能ssh通,scp和telnet都不通:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | [root@hdw1 ~]# ping 100.8.6.26 PING 100.8.6.26 (100.8.6.26) 56(84) bytes of data. 64 bytes from 100.8.6.26: icmp_seq=1 ttl=63 time=0.347 ms ^C --- 100.8.6.26 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.347/0.347/0.347/0.000 ms [root@hdw1 ~]# [root@hdw1 ~]# ssh root@100.8.6.26 -p22 ssh: connect to host 100.8.6.26 port 22: Connection refused [root@hdw1 ~]# telnet 100.8.6.26 22 Trying 100.8.6.26... telnet: connect to address 100.8.6.26: Connection refused [root@hdw1 ~]# [root@hdw1 ~]# touch a.txt [root@hdw1 ~]# scp a.txt root@100.8.6.26:/soft/ ssh: connect to host 100.8.6.26 port 22: Connection refused lost connection [root@hdw1 ~]# [root@hdw1 ~]# ssh root@100.8.6.26 -p2222 root@100.8.6.26’s password: |
可能原因
当你在SSH连接时遇到"ssh: connect to host port 22: Connection refused"错误时,这通常表示SSH服务器端口无法访问或连接被拒绝。以下是一些可能的解决方法:
- 检查SSH服务是否正在运行:确保目标主机上的SSH服务器正在运行。可以通过运行sudo service ssh status(适用于使用systemd的发行版)或sudo systemctl status sshd(适用于使用init.d的发行版)来检查SSH服务的运行状态。
- 确认SSH端口是否正确:默认情况下,SSH使用端口22。如果SSH服务器端口已更改,请确保在SSH连接命令中指定了正确的端口号,例如ssh -p
user@host,其中 是正确的SSH端口号。 - 目标服务器防火墙配置:检查目标主机的防火墙设置,确保SSH端口(默认为22)已正确打开。如果使用iptables或ufw等防火墙工具,请添加相应的规则以允许SSH连接。
- 网络连接问题:确认目标主机和你的本地计算机之间的网络连接正常。确保你的本地计算机可以与目标主机建立连接,并且网络没有任何阻塞或限制。
- SSH配置问题:检查SSH服务器配置文件(通常是/etc/ssh/sshd_config),确保配置正确并且允许SSH连接。例如,确认"AllowUsers"和"AllowGroups"选项是否包含你要连接的用户或组。
- 重启SSH服务:如果以上步骤都没能解决问题,可以尝试重新启动SSH服务。可以使用sudo service ssh restart或sudo systemctl restart sshd来重新启动SSH服务。
- 路由器或交换机禁用了22端口:请使用其它端口替换。
我的问题
客户在网络层面禁掉了22端口导致的,解决办法就是添加备用端口2222,请参考:https://www.xmmup.com/ruheshiyongbeiyongduankoulianjie-ssh.html#zong_jie1