ssh 安装及登录提示:connection refused的解决办法

本文提供了一套详细的步骤来排查SSH连接失败的问题,包括检查SSH服务状态、验证用户登录权限、审查iptables防火墙设置及SSH配置文件等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载请注明出处:http://hi.baidu.com/leejun_2005/blog/item/fbc27c4b20e83d3a08f7ef23.html?timeStamp=1309179713928

from:http://hi.baidu.com/tunaisen/blog/item/85e0a41805ed9fb24bedbcf3.html

如果出现ssh: connect to host XX.XX.XX.XX port 22: Connection refused

请按如下步骤检查:

1、目标主机的ssh server端程序是否安装、服务是否启动,是否在侦听22端口;

检查方法:

june@ubuntu:~$ ps -ef|grep sshd

root      2859     1  020:29 ?        00:00:00 /usr/sbin/sshd -D

root      2901  2859  020:31 ?        00:00:00 sshd: june[priv]   

june      2971  2901  020:31 ?        00:00:00 sshd:june@pts/1    

june@ubuntu:~$

其中/usr/sbin/sshd为ssh clinet/server中server端的守护进程,如果上述结果中没有sshd出现,那么可能就是你的server端程序没有安装(Ubuntu 11.04 默认没有安装ssh server,只安装了ssh client),或者sshd服务没有启动,这两者的解决办法请见下文详述。
2、是否允许该用户登录;
3、本机是否设置了iptables规则,禁止了ssh的连入/连出;

检查方法:

june@ubuntu:~$sudo  iptables -L

[sudo] password for june: 

Chain INPUT (policy ACCEPT)

target    prot opt source               destination         

ACCEPT    tcp  --  anywhere             anywhere            tcp dpt:ssh 

 

Chain FORWARD (policy ACCEPT)

target    prot opt source              destination         

 

Chain OUTPUT (policy ACCEPT)

target    prot opt source              destination         

june@ubuntu:~$
4、查查ssh的配置文件

 ls -lrt /etc/ssh

针对第一点没有安装ssh server或者没开启sshd的用户,可以参考这篇:

Ubuntu如何开启SSH服务

SSH分客户端openssh-client和openssh-server
  如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-server:sudo apt-get install openssh-server然后确认sshserver是否启动了:
ps -e |grep ssh
  如果看到sshd那说明ssh-server已经启动了。
  如果没有则可以这样启动:sudo /etc/init.d/ssh start
ssh-server配置文件位于/etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。
  然后重启SSH服务:
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start

  然后使用以下方式登陆SSH:
ssh tuns@192.168.0.100    tuns为192.168.0.100机器上的用户名,需要输入密码。
  断开连接:exit

<think>好的,我现在需要帮助用户解决SSH连接时出现的“channel open failure connection refused”错误。首先,我得回想一下常见的SSH问题原因,然后逐一分析可能的情况。 首先想到的是网络连接问题。用户可能无法连接到目标主机的SSH端口(默认22)。需要检查目标主机是否在线,防火墙是否放行了该端口,或者是否有网络路由问题。可以用telnet或nc命令测试端口连通性,例如`telnet 目标主机 22`。如果连接被拒绝,可能是服务未启动或端口被阻止[^1]。 接下来是SSH服务配置。检查目标主机上的sshd服务是否正在运行,可以使用`systemctl status sshd`查看状态。如果服务未启动,需要启动服务。另外,检查/etc/ssh/sshd_config配置文件,确认Port设置是否正确,AllowUsers是否包含了当前用户,以及是否禁用了某些认证方式。比如,如果PasswordAuthentication被设为no,而用户又没配置公钥,就会导致连接失败。 然后考虑权限问题。用户主目录下的.ssh文件夹和authorized_keys文件的权限必须正确。通常,.ssh目录权限应为700,authorized_keys为600。如果权限过松,sshd会拒绝使用这些文件,导致认证失败。用户之前执行过`chmod 600 ~/.ssh/authorized_keys`,可能已经处理了这部分,但需要确认目录权限是否正确。 还有可能是客户端的配置问题。比如用户的SSH客户端使用了错误的私钥,或者配置文件中指定了错误的端口。可以尝试用`ssh -v`选项查看详细日志,找出连接失败的具体步骤。日志中的错误信息会提示是认证失败、连接超时还是其他问题。 另外,SELinux或AppArmor等安全模块可能会阻止SSH连接。临时禁用SELinux(`setenforce 0`)测试是否能连接成功,如果可行,需要调整相关策略。 还有可能主机密钥发生变化,导致客户端拒绝连接。这时候需要删除客户端known_hosts文件中对应的条目,重新连接。 最后,检查是否有中间设备如跳板机或代理配置错误,或者目标主机的资源限制(如最大连接数已满)。 总结下来,解决步骤可能是:检查网络连通性,确认服务状态和配置,验证文件和目录权限,查看详细日志,检查安全策略,以及客户端配置。通过逐步排查这些方面,应该能找到问题根源并解决。</think>针对SSH连接中出现"channel open failure connection refused"的问题,请按照以下步骤排查: ### 一、检查网络连通性 1. 使用`telnet`或`nc`测试端口连通性: ```bash telnet 目标主机 22 # 或 nc -zv 目标主机 22 ``` 如果显示`Connection refused`,说明SSH服务未运行或端口被屏蔽 ### 二、验证SSH服务状态 1. 在目标主机执行: ```bash systemctl status sshd # 查看服务状态 ss -tuln | grep :22 # 确认服务监听端口 journalctl -u sshd -n 50 # 查看最近50条日志 ``` ### 三、检查关键配置文件 检查`/etc/ssh/sshd_config`配置: ```bash Port 22 # 确认端口号 PermitRootLogin yes # 是否允许root登录 PasswordAuthentication yes # 是否启用密码验证 AllowUsers your_username # 用户白名单 ``` ### 四、权限验证 确认目标主机权限设置: ```bash chmod 700 ~/.ssh # 目录权限 chmod 600 ~/.ssh/authorized_keys # 密钥文件权限 chown -R user:user ~/.ssh # 属主权限 ``` ### 五、客户端调试 添加`-v`参数查看详细日志: ```bash ssh -vvv user@hostname # 三级详细日志 ``` 观察日志中失败的具体阶段(认证阶段/通道建立阶段) ### 六、防火墙检查 检查防火墙规则: ```bash iptables -L -n -v # 传统防火墙 firewall-cmd --list-all # firewalld ufw status # Ubuntu防火墙 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值