通过 ssh 连接到我的服务器失败

通过 ssh 连接到我的服务器失败

我的目标:我希望能够从外部客户端 ssh 到我的工作站。

我的工作站(以下也称为服务器)位于局域网上。它在这个局域网上的IP地址与它在互联网上的IP地址明显不同。我已经使用公钥设置了 ssh 服务器。

这是当我尝试从客户端进行 ssh 时发生的情况:

  1. 如果客户端在同一个局域网中:

    我尝试使用 ifconfig 返回的 IP 来 ping 我的服务器。客户端无法 ping 我的服务器。

  2. 如果客户端来自外部,不在局域网上:

    客户端可以 ping 服务器,但是当我尝试连接时,我得到Connection timed out


的输出iptables -L -v

Chain INPUT (policy ACCEPT 346K packets, 233M bytes)
 pkts bytes target     prot opt in     out     source               destination         
 346K  233M sshguard   all  --  any    any     anywhere             anywhere            
 346K  233M sshguard   all  --  any    any     anywhere             anywhere            

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 193K packets, 26M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain sshguard (2 references)
 pkts bytes target     prot opt in     out     source               destination   

答案1

您的 iptables 配置显示sshguard正在使用中。我会检查一下你的sshguard配置正在允许您的 ssh 连接。

为了帮助排除故障,您可能需要删除 sshguard ( sudo apt-get remove sshguard) 并确认 ssh 正常工作。

安装 sshguard 后,检查 iptables 规则和 /etc/hosts.deny 规则。

对于 iptables,请尝试以下所示的规则sshguard netfilter-iptables 示例:

iptables -N sshguard
# block whatever SSHGuard says be bad ...
iptables -A INPUT -j sshguard
# enable ssh, dns, http, https
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# and block everything else (default deny)
iptables -P INPUT DROP

相关内容