通过 DHCP 服务器连接 SSH

通过 DHCP 服务器连接 SSH

我已经设置了 DHCP 服务器,但似乎无法通过 SSH 连接任何东西。

当我登录到服务器本身时,我可以使用 SSH。但是当我将任何计算机连接到 DHCP 服务器时,该计算机可以使用 SSH,但我使用 SSH 连接的每台服务器都会要求输入密码,而正常行为(未连接到 DHCP 服务器时)则不需要。

以下是与端口 22 相关的 iptables 脚本的内容。

$IPT -t nat -A PREROUTING -i $LAN -p tcp --dport 22 -j REDIRECT --to-port 22
$IPT -A FORWARD -i $LAN -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT -i $LAN -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
$IPT -A INPUT -i $LAN -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

我是否遗漏了什么?

答案1

发生这种情况的原因是服务器的 IP 地址已更改,并且您的 ssh 客户端正在检查其拥有的另一台曾经拥有该 IP 地址的服务器的密钥。

处理此问题的正确方法是将 DHCP 配置为始终为同一台机器提供相同的 IP 地址,方法是将其与机器的 MAC 地址绑定。

但是如果您想保留相同的设置,并且仍然使用 ssh,那么您需要通过发出以下命令来清除您尝试连接的机器的存储密钥:

ssh-keygen -R machine_host_name

替换machine_host_name使用适当的内容,然后尝试 ssh。

答案2

知道了。

我删除了与 SSH/端口 22 相关的所有内容。

我添加了以下几行:

$IPT -A INPUT -i $LAN -p tcp --destination-port 22 -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -o $LAN -p tcp --destination-port 22 -m state --state NEW -j ACCEPT

相关内容