阿里云配置通用服务的坑 ssh: connect to host 47.103.101.102 port 22: Connection refused

1、~ wjw$ ssh root@47.103.101.102

ssh: connect to host 47.103.101.102 port 22: Connection refused
ssh 服务没有开:按照网上的解决思路:
1、重启 ssh 服务
$sudo service ssh restart 或者 /etc/init.d/sshrestartps -ef | grep ssh
结果是空的。
可能原因,ssh client 和server 不匹配
2、重新安装:
先移除
sudoaptgetmoveopensslserveropensslclientsudoaptgetinstallopensslserveropensslclientsudoaptgetupdatesshsudo service ssh start 或/etc/init.d/ssh start
提示
网页远程登录:
systemctlstatusfirewalldsshstart/runningps -ef | grep ssh
结果还是空的。

3、怀疑是ssh 配置问题?
$vi /etc/ssh/ssh_config
打开
Ptorocol 2
Prot 2
保存退出,重启服务,无效。。。估计很多人在这一步都把问题解决了

4、打开阿里云,检测安全组策略
22端口默认阿里云的INPUT是给你打开的。
查看22端口的占用情况
$ lsof -i:22
没有信息

问题不该在这

5、可能是iptables在我重启实例的时候 上次配置的防火墙规则没有自动生效
更改防火墙配置规则,先直接关闭防火墙
$sudo ufw disable
再次看ssh状态,还是无法连接
编辑iptables

$vi /etc/iptables.rules

*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:syn-flood - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p icmp -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
-A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j syn-flood
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A syn-flood -p tcp -m limit --limit 3/sec --limit-burst 6 -j RETURN
-A syn-flood -j REJECT --reject-with icmp-port-unreachable
COMMIT

保存退出
执行命令:
$iptables-restore < /etc/iptables.rules
使规则生效。

**将添加的规则保存

iptables-save /etc/iptables.roles

编辑/etc/network/interfaces文件

vim /etc/network/interfaces

在末尾行添加一句

pre-up iptables-restore < /etc/iptables.rules

设置完成

以上添加内容参数释义:

pre-up: 网卡启用前的动作
up: 启用时候的动作
post-up: 启用后的动作
pre-down: 关闭前的动作
down: 关闭时动作
post-down: 关闭后动作

2、误配了 /usr/sshb/sshd 的配置项,

无论如何启动,都无法启动ssh 服务,中间有过重装 openssl-server,openssl-client 的过程。
起因是我遇到的问题,MAC终端使用 sshroot@ip线ssh/usr/sbin/sshdServerAliveInterval60cd /etc/ssh
visshconfigServerAliveInterval60/etc/init.d/ssh start 还是 $sudo service ssh start 都无法启动ssh 服务,虽然命令提示 ssh 已经运行
使用 ps -ef | grep ssh 时列表总是空,看不到服务.

root@Jarvis:~# /etc/init.d/ssh restart
ssh stop/waiting
ssh start/running
root@Jarvis:~# 
posted @   wjwdive  阅读(3969)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示