VPS 中更改 SSHD 端口后无法登录

VPS 中更改 SSHD 端口后无法登录

我将非托管 CentOS VPS 上的 SSHD 端口更改为0062,现在我无法通过 SSH 接入并出现错误:Network error: connection refused

有人知道如何进入并修复此问题吗?为什么将端口更改为此会阻止我连接?

注意:VPS 是外部托管的

答案1

很多事情都有可能发生。我想到以下几件事:

  • 您的防火墙仍然阻止该连接。
  • 另一个服务正在端口 62 上运行
  • 更改值后您没有重新启动服务
  • ...

尝试通过带外控制台进行连接(如果有的话)并更改需要更改的内容(防火墙、设置等)。要测试防火墙是否在困扰您,请将其停止一小会儿,然后看看您是否可以进入(service iptables stop

我也不确定是否要将其0062作为端口。你可能需要将62其改为。

如果您无法进入带外,请让您的提供商检查一下。否则,您将不得不重新映像机器。

该脚本确实应该更改防火墙上的端口和 ssh 的配置:

sed -i 's/#HostKey \/etc\/ssh\/ssh_host_rsa_key/HostKey \/etc\/ssh\/ssh_host_rsa_key/g' /etc/ssh/sshd_config
sed -i 's/#HostKey \/etc\/ssh\/ssh_host_dsa_key/HostKey \/etc\/ssh\/ssh_host_dsa_key/g' /etc/ssh/sshd_config
sed -i 's/#PubkeyAuthentication/PubkeyAuthentication/g' /etc/ssh/sshd_config
sed -i 's/#RSAAuthentication/RSAAuthentication/g' /etc/ssh/sshd_config
sed -i 's/#AuthorizedKeysFile/AuthorizedKeysFile/g' /etc/ssh/sshd_config
sed -i 's/#IgnoreRhosts yes/IgnoreRhosts yes/g' /etc/ssh/sshd_config
sed -i 's/#PermitEmptyPasswords no/PermitEmptyPasswords no/g' /etc/ssh/sshd_config

/usr/sbin/sshd -t

service sshd restart

iptables -I INPUT -p tcp --dport $PORTNUM -j ACCEPT

service iptables restart

但是,0062可能其中一个或两个都坏了。请先尝试重新进入您的机器。

答案2

0062 可以解释为八进制……也就是端口 50。尝试连接端口 50。我怀疑它是否会起作用,但值得一试。

VPS 由谁托管?大多数 VPS 都为您提供不通过 SSH 连接的 Web 控制台,或者至少提供一种从救援 CD 启动系统的方法,您可以在其中进入并更改配置文件。

答案3

如果其他人关于防火墙和输出的提示对netstat -tulpen您没有帮助,那么还有另一个细节可能有错误。

如果启用了 SELinux,它可以阻止 sshd 访问除 22 之外的端口。使用以下命令检查

semanage port -l | grep ssh

如果只返回 22,你可以使用以下命令向 SELinux sshd 规则添加更多端口

semanage port -a -t ssh_port_t -p tcp 62

答案4

通过 连接时您是否指定了端口ssh

ssh -p 62 [email protected]

ssh默认情况下预计连接到端口 22,如果您更改了这一点,则需要告诉您的应用程序。

相关内容