统信UOS远程连接被拒绝需逐层排查:一、安装openssh-server与openssh-sftp-server并启动ssh服务;二、用firewalld或ufw放行22端口;三、修改sshd_config启用PasswordAuthentication、PermitRootLogin及ListenAddress,重启ssh服务;四、清理客户端known_hosts冲突条目。

统信UOS远程连接被拒绝时,客户端常显示“Connection refused”或“Permission denied (publickey)”,这不是网络不通,而是服务未监听、端口被拦截、认证方式被禁用或root登录被锁死——必须逐层排查服务状态、防火墙规则、SSH配置三类核心问题。
确认SSH服务是否已安装并运行
统信UOS桌面版默认只装openssh-client,【openssh-server和openssh-sftp-server缺一不可】。终端执行dpkg -l | grep openssh,若输出中没有openssh-server或openssh-sftp-server,立即补装:
sudo apt install -y openssh-server openssh-sftp-server
安装完成后,执行systemctl status ssh。如果状态是inactive (dead),说明服务根本没跑起来,必须手动启动:
sudo systemctl start ssh && sudo systemctl enable ssh
再次检查状态,确认输出含active (running)且Loaded: enabled。这一步漏掉,后续所有配置都无效。
检查防火墙是否放行22端口
即使SSH服务在跑,firewalld或ufw若没开22端口,请求会在内核层被直接丢弃,表现就是“Connection refused”。先查防火墙状态:
sudo firewall-cmd --state(返回running)或sudo ufw status verbose(返回Status: active)
方法一(firewalld):
sudo firewall-cmd --permanent --add-port=22/tcp → sudo firewall-cmd --reload → sudo firewall-cmd --list-ports(确认含22/tcp)
方法二(ufw):
sudo ufw allow 22 → sudo ufw status(检查22/tcp是否出现在ALLOW IN列表)
【注意:ufw默认deny all,只放行22端口即可,别开一堆端口】
修正sshd_config关键参数
很多“Permission denied”错误实际源于配置文件限制。用sudo vi /etc/ssh/sshd_config打开主配置文件,重点修改三项:
第一步:取消PasswordAuthentication行的注释,设为yes。若留默认no,密码登录永远失败。
第二步:定位PermitRootLogin,改为yes(如需root直连)或prohibit-password(仅允许密钥)。【该行若以#开头,必须删掉#,否则修改无效】
第三步:确认ListenAddress未被限定为127.0.0.1——如果是,远程IP连不上。建议保留默认或显式写ListenAddress 0.0.0.0。
全部改完后,必须重启服务:
sudo systemctl restart ssh
处理客户端known_hosts冲突
当服务器重装系统或更换IP后,客户端~/.ssh/known_hosts里存的老公钥会触发RSA校验失败,报错“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED”。这不是服务端问题,而是客户端缓存过期。
直接删掉对应行:
sed -i '/服务器IP地址/d' ~/.ssh/known_hosts
或者暴力清空(仅限测试环境):
rm ~/.ssh/known_hosts
下次连接会自动重建新条目,不再拒绝。

















