通过中间人服务器的SSH反向隧道 – 如何一步连接?

我的问题基本上是如何把现有的两个步骤变成一步。

我有一个工作的SSH隧道使用这样的中间人服务器设置两台计算机之间:

Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop 

我现在所做的是从Kubuntu_laptop到Debian_Server,然后从Debian_Server到Kubuntu_desktop的SSH。 我想做一个SSH命令,在我的Kubuntu_laptop的bash上发布,导致我连接到Kubuntu_desktop(shell / bash)。

我现在使用的命令如下。

步骤1:

 me@kubuntu_laptop:~$ ssh -i ~/.ssh/id_rsa admin@debian_server 

第2步:

 admin@debian_server:$ ssh -p 1234 -i /home/admin/.ssh/id_rsa admin@localhost 

然后我通过SSH(从kubuntu_laptop)连接到kubuntu_desktop。

所有SSH连接都需要RSA密钥。 密码login被禁用。 并注意到在两台计算机上的计算机用户帐户是不同的。

关于这条腿的连接:

 Debian_Server<--nat_fw<--Kubuntu_desktop 

这是如何build立的。

第0步:

 autossh -M 5234 -N -f -R 1234:localhost:22 [email protected] -p 22 

通知Kubuntu_desktop以[email protected](不是admin @ debian_server)连接到中间人。 但是当我连接到Kubuntu_desktop,我作为pipe理员用户连接。

我无法更改现有的监视端口(5234)或远程( – R)端口号(本例中为1234)。 我无法更改SSH安全性以允许密码login。 我无法打开任何新的防火墙端口。 我无法更改用户帐户(笔记本电脑除外)。

(一旦我有这个工作,我想获得vnc或远程桌面支持解决scheme在SSH隧道上工作。)

确保在Debian服务器上安装了netcat,并在本地SSHconfiguration( ~/.ssh/config )中使用ProxyCommand

 Host Kubuntu_desktop User admin IdentityFile ~/.ssh/Kubuntu_desktop.rsa ProxyCommand ssh -i ~/.ssh/id_rsa admin@Debian_Server nc localhost 1234