虚拟主机域名注册-常见问题其他问题 → 其他问题

SSH远程访问服务器出现 “SSH连接被拒绝”,如何解决?

  SSH为何会拒绝连接?

  尝试通过SSH进入服务器时,您可能会收到“连接被拒绝”错误的原因有很多。要解决此问题,您首先需要确定系统为何通过SSH拒绝您的连接。

  在下面,您会发现一些可能导致SSH连接拒绝的最常见原因。

  SSH客户端未安装

  在对其他问题进行故障排除之前,第一步是检查是否已正确安装SSH。您要从中访问服务器的计算机应已设置SSH客户端。没有正确的客户端设置,您将无法远程访问服务器。

  要检查系统上是否有SSH客户端,请在终端窗口中键入以下内容:

  ssh

  如果终端提供ssh命令选项列表,则说明SSH客户端已安装在系统上。但是,如果响应时未找到命令,则需要安装OpenSSH Client。

  解决方案:安装SSH客户端

  要在计算机上安装SSH客户端,请打开终端,然后运行下面列出的命令之一。

  对于Ubuntu / Debian系统:

  sudo apt install openssh-client

  对于CentOS / RHEL系统:

  sudo yum install openssh-client

  SSH守护程序未安装在服务器上

  就像您需要SSH的客户端版本来访问远程服务器一样,您也需要服务器版本来侦听和接受连接。因此,如果缺少SSH服务器或设置无效,则服务器可能会拒绝传入连接。

  要检查SSH在远程服务器上是否可用,请运行以下命令:

  ssh localhost

  如果输出响应为“ Connection rejected ”,请继续在服务器上安装SSH。

  解决方案:在远程服务器上安装SSH

  凭证错误

  错字或不正确的凭据是SSH连接被拒绝的常见原因。确保您没有误输入用户名或密码。

  然后,检查您是否使用了正确的服务器IP地址。

  最后,确认您打开了正确的SSH端口。您可以通过运行以下命令进行检查:

  grep Port /etc/ssh/sshd_config

  输出显示端口号。

  SSH服务已关闭

  SSH服务需要启用并在后台运行。如果服务关闭,则SSH守护程序无法接受连接。

  要检查服务的状态,请输入以下命令:

  sudo service ssh status

  输出应响应该服务处于活动状态。如果终端响应该服务已关闭,请启用它以解决问题。

  解决方案:启用SSH服务

  如果系统显示SSH守护程序未处于活动状态,则可以通过运行以下命令启动服务:

  systemctl start sshd

  要使服务在引导时运行,请运行以下命令:

  sudo systemctl enable sshd

  防火墙阻止SSH连接

  由于防火墙的限制,SSH可以拒绝连接。防火墙保护服务器免受潜在有害连接的侵害。但是,如果在系统上设置了SSH,则必须将防火墙配置为允许SSH连接。

  确保防火墙没有阻止SSH连接,因为这可能会导致“连接被拒绝”错误。

  解决方案:允许通过防火墙的SSH连接

  要解决我们上面提到的问题,您可以使用ufw(非复杂防火墙),它是用于管理防火墙配置的命令行界面工具。

  在终端窗口中键入以下命令以允许SSH连接:

  sudo ufw allow ssh

  SSH端口已关闭

  当您尝试连接到远程服务器时,SSH将请求发送到特定端口。要接受此请求,服务器需要打开SSH端口。

  如果端口关闭,则服务器拒绝连接。

  默认情况下,SSH使用端口22。如果尚未对端口进行任何配置更改,则可以检查服务器是否正在侦听传入的请求。

  要列出所有正在监听的端口,请运行:

  sudo lsof -i -n -P | grep LISTEN

  在输出中找到端口22,并检查其STATE是否设置为LISTEN。

  或者,您可以检查特定端口是否打开,在这种情况下,端口22:

  sudo lsof -i:22

  解决方案:打开SSH端口

  要使端口22能够监听请求,请使用以下iptables命令:

  sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

  您也可以通过更改防火墙设置通过GUI打开端口。

  SSH调试和记录

  要分析Linux中的SSH问题,您可以打开详细模式或调试 模式。启用此模式后,SSH将打印出调试消息,以帮助解决连接,配置和身份验证方面的问题。

  详细程度分为三个级别:

  1级(-v)

  2级(-vv)

  3级(-vvv)

  因此,不要使用语法访问远程服务器,而是ssh [server_ip]添加-v选项并运行:

  ssh -v [server_ip]

  或者,您可以使用:

  ssh -vv [server_ip]

  要么

  ssh -vvv [server_ip]




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:虚拟主机使用上注意些什么?虚拟主机使用教程
下一篇:Hostname命令如何运用
  >> 相关文章
没有相关文章。

服务热线

198-9911-5815

功能和特性

价格和优惠

技术支持及售后

微信关注