通过中间人服务器的SSH隧道-如何一步连接(使用密钥对)?


9

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

我使用这样的中间人服务器在两台计算机之间建立了可工作的SSH隧道:

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

我目前要做的是从Kubuntu_laptop到Debian_Server的SSH,然后从Debian_Server到Kubuntu_desktop的SSH。我想用bash在我的Kubuntu_laptop上发出一个SSH命令,以使我连接到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密钥。一直禁用密码登录。并请注意,两台计算机上的计算机用户帐户不同。

关于这条腿的连接:

Debian_Server<--nat_fw<--Kubuntu_desktop

建立方法如下:

autossh -M 5234 -N -f -R 1234:localhost:22 user@mydebian.com -p 22

注意Kubuntu_desktop以user@mydebian.com(不是admin @ debian_server)连接到中间人。但是当我连接到Kubuntu_desktop时,我以管理员用户身份连接。

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



@HaukeLaging-似乎很有趣,但我不明白。什么是“ nc”?在〜/ .ssh / config的哪台机器上进行编辑?基本上,我需要的不是该问题/答案所提供的更多细节。谢谢。
2013年

该问题已交叉发布(无通知)到Server Fault SE。这是非常糟糕的形式!
mdpc

感谢各地的反对票,但是在两个不同的地方问怎么了?您是否还会阻止我在ubuntuforums.org或其他地方提问?
MountainX

@ HaukeLaging-如果在我的笔记本电脑〜/ .ssh / config中使用ProxyCommand,我要输入什么Kubuntu_Desktop的主机名?没有fqdn。这是反向SSH。谢谢。
MountainX

Answers:


8

确保netcat已安装在Debian服务器上,并ProxyCommand在本地SSH配置(~/.ssh/config)中使用。

Host Kubuntu_desktop
  ProxyCommand ssh Debian_Server nc localhost 1234

我给出了所有答案,以求完整性,但这全都归功于您的帮助。我接受你的回答。谢谢!!!
MountainX

6

感谢@Ignacio Vazquez-Abrams,这里是所有步骤:

确保在Debian服务器上安装了netcat,并在本地SSH配置(〜/ .ssh / config)中使用ProxyCommand。

我编辑配置如下:

me@kubuntu_laptop:~/.ssh$ nano config

内容是:

Host kubuntu_desktop
  ProxyCommand ssh debian_server_fqdn nc localhost 1234
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

然后只需连接:

me@kubuntu_laptop:~$ ssh kubuntu_desktop

1步通过SSH连接到kubuntu_desktop!完善

更新:

这使其更加灵活:

me@kubuntu_laptop:~/.ssh$ nano config

新内容是:

Host family_desktops
  ProxyCommand ssh debian_server_fqdn nc localhost %p
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

然后只需连接到妈妈:

me@kubuntu_laptop:~$ ssh family_desktops -p 1234

并连接到爸爸:

me@kubuntu_laptop:~$ ssh family_desktops -p 5678

当然,爸爸妈妈必须设置步骤0(根据我的原始问题),每个步骤都定义了自己的-R端口。爸爸的例子:

步骤0(对于爸爸):

autossh -M 6543 -N -f -R 5678:localhost:22 user@mydebian.com -p 22

可选的:

DAD=5678
ssh family_desktops -p $DAD

ProxyCommand也可以写为:ProxyCommand ssh debian_server_fqdn -W localhost:%p因此,无需在Debian服务器上安装netcat。
凯文(Kevin)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.