为什么我通过SSH连接到服务器时出现“连接被拒绝”错误?

我用LAMP堆栈安装了Ubuntu 12.04.1 LTS。

我可以ping它,但当我尝试连接到它时,无法找到服务器。

当我尝试连接WinSCP时,我收到错误Network error: connection refused

我已经安装了openssh-serveropenssh-client软件包但仍然无法连接。

这听起来像是防火墙问题。 这台机器是在不同网络或同一局域网上的物理防火墙后面吗? 如果它位于不同的网络上,请检查网关防火墙和主机防火墙( iptables ),并确保允许端口22。

为此,请按照以下说明操作:

  1. root用户身份登录。

  2. 打开/etc/sysconfig/iptables文件,输入:

     # vi /etc/sysconfig/iptables 
  3. 查找如下所示的行:

     COMMIT 
  4. 要打开端口22( ssh ),请输入(在COMMIT行之前):

     -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 
  5. 保存并关闭文件。 重启防火墙:

     # /etc/init.d/iptables restart 
  6. 接下来检查以确保服务正在侦听。

  7. 尝试发出命令:

    netstat -vatn | grep :22 netstat -vatn | grep :22并查看端口22是否正在侦听。

    你也可以尝试:

     netstat -vatn | grep ssh 

这将负责基于主机的防火墙,但如果您和您尝试远程进入的计算机之间存在基于网络的防火墙,则必须查阅该特定设备的指令,以允许连接到端口22进入网络。