我有A
两个B
SSH 服务器,我可以从任何地方连接到B
,但A
我只能从 连接到B
。为了实现这一点,我通常连接到B
然后输入ssh username@A
。
A
我怎样才能通过而不输入两次 ssh 命令来连接?并保留同时B
连接A
和的可能性,这是我的愿望。B
答案1
您可以使用 NAT 来实现这一点。在 B 上的 PREROUTING 链中进行 DNAT。您可以将 B 上的端口 23 转发到 A 上的端口 22。
这显然要求总体上启用转发(在内核中)并且允许这种特定的转发(在防火墙中)。
答案2
通常的解决方法是
ssh A -L 2222:B:22
然后(从您的桌面,不是来自A)
ssh -p 2222 localhost
确实,这需要你执行两次登录,但仅限于第一次访问 B之后,您只需重复第二个命令,就可以重复使用现有隧道多次登录 B。
此外,如果您厌倦了一次又一次地输入密码,我建议您研究一下ssh-agent
;设置起来很麻烦,但一旦完成就可以节省大量时间。