有人能解释一下这个命令是做什么的吗?
ssh -L5000:localhost:5000 [email protected] -t ssh -L5000:localhost:22 tec02
答案1
ssh -L5000:本地主机:5000[电子邮件受保护]-t
这部分建立连接并将本地端口 5000 转发到远程主机上的端口 5000
ssh -L5000:localhost:22 tec02
这部分在 ssh 上运行,它以同一用户(user1)连接并将本地(从 somedomain.com 的角度来看)端口 5000 转发到主机 tec02 上的端口 22
由于双重转发,之后您可以通过 ssh 连接到本地端口 5000 并连接到 tec02(例如 sftp)
答案2
我想到了。
为了理解,让我们将命令分为两部分
ssh -L5000:localhost:5000 [email protected]
和
L5000:localhost:22 tec02
第一个命令是 - 使用机器 somedomain.com 将我的机器的端口 5000 绑定到(本地主机的)端口 5000
这将使用 ssh 将您计算机的端口 5000 绑定到远程计算机的端口 5000。它使用 somedomain.com 连接到 localhost 或任何可以与 somedomain.com 通信的东西,在这种情况下,somedomain.com 可以与其本地主机通信,因此通过 ssh 建立到 somedomain.com 的本地主机的连接
其次,在命令的第二部分。 somedomain.com 的端口 5000(现在与我们机器的端口 5000 绑定)通过相同的进程绑定到 tec02 的端口 22
注意:tec02 上的用户也是 user1。
说这样的话
ssh -L5000:本地主机:5000[电子邮件受保护]-t ssh -L5000:localhost:22 user1@tec02
答案3
为了便于记住,远程始终与本地配对,反之亦然本地 - 远程。从左到右解析命令-L作为缩写当地的和-R作为缩写偏僻的。
我想要: 开(偏僻的端口2000指向我的当地的我的远程主机的本地主机端口 22 是mypublicremotehost.com
。
ssh -R2000:localhost:22 mypublicremotehost.com
我想要: 开(当地的端口 2345指向我的偏僻的我的远程主机的本地主机端口 8080 是mypublicremotehost.com
。
ssh -L2345:localhost:8080 mypublicremotehost.com