我有一个运行 Ubuntu 14.04 的目标服务器(我们称之为destserver
)和一个同样运行 Ubuntu 14.04 的隧道服务器(我们称之为bridgeserver
),它有一个固定的 IPV4 地址。我目前已将其设置为在启动时destserver
用于autossh
连接到bridgeserver
:
exec autossh -M 0 -N -R 2222:localhost:22 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "StrictHostKeyChecking=no" -o "BatchMode=yes" -i /path/to/bridgeserver_mybridgeuser_id_rsa mybridgeuser@BRIDGESERVER_IP_ADDR
我在这里使用密钥认证,因此上述命令无需密码即可完成。现在,当我在某个公共网络上使用笔记本电脑时,我可以从中执行以下任务:
ssh -t -o ProxyCommand='ssh mybridgeuser@BRIDGESERVER_IP_ADDR nc localhost 2222' mydestuser@localhost
...一切都很好,只是它要求我输入两组密码:
$ ssh -t -o ProxyCommand='ssh mybridgeuser@BRIDGESERVER_IP_ADDR nc localhost 2222' mydestuser@localhost
mybridgeuser@BRIDGESERVER_IP_ADDR's password:
mydestuser@localhost's password:
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.2.0-42-generic x86_64)
...
现在,我想让其他人可以使用这个目标服务器,但我不想分享桥接服务器(我个人租用的)的任何身份验证详细信息,因此我不想分享 的密码mybridgeuser
。所以我想建立一个像上面那样的连接 - 除了只询问 处用户(比如mydestuser
)的密码之外destserver
。
是否有一种ssh
语法可以在客户端上使用,以便我能够destserver
仅使用来自的用户凭据destserver
(无需来自的密码提示bridgeserver
)连接到,而无需更改当前设置autossh
?如果需要更改设置,设置将发生哪些更改 -ssh
笔记本电脑上的命令将是什么样子?
答案1
嗯,我可能错了,但我只是在我的初始化文件中写道:
exec autossh -M 0 -N -R :2222:localhost:22 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "StrictHostKeyChecking=no" -o "BatchMode=yes" -i /path/to/bridgeserver_mybridgeuser_id_rsa mybridgeuser@BRIDGESERVER_IP_ADDR
... 代替:
exec autossh -M 0 -N -R 2222:localhost:22 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "StrictHostKeyChecking=no" -o "BatchMode=yes" -i /path/to/bridgeserver_mybridgeuser_id_rsa mybridgeuser@BRIDGESERVER_IP_ADDR
...注意,我刚刚在 ; 之前添加了一个冒号2222:localhost:22
,现在在笔记本电脑上我只需发出:
ssh mydestuser@BRIDGESERVER_IP_ADDR -p 2222
...现在它似乎可以工作了,因为它只要求我输入一个密码:
$ ssh mydestuser@BRIDGESERVER_IP_ADDR -p 2222
mydestuser@BRIDGESERVER_IP_ADDR's password:
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.2.0-42-generic x86_64)
...
...而以前它不允许我这样做?!:
$ ssh mydestuser@BRIDGESERVER_IP_ADDR -p 2222
ssh: connect to host BRIDGESERVER_IP_ADDR port 2222: Connection refused
我不确定为什么需要这个冒号,所以我仍然想阅读有关该问题的正确答案......