我认为使用它是一种非常奇怪的方式,但我需要它。 主要用途是获得机器C动态IP。
我有三台Linux机器(让我们称之为A,B,C),让我们假设 A有IP 10.6.47.100(动态IP) B具有IP 10.6.47.102(动态IP),192.168.1.1(静态IP) C具有IP 10.6.47.104(动态IP),192.168.1.2(静态IP)
条件是,我的程序在机器A上运行,我只知道机器B IP(动态和静态IP)。
我想使用机器B域192.168.1.x通过“a”命令行获取机器C动态IP。
哪个意思 使用机器命令行中的一个键,这个命令是ssh到B并告诉B到ssh C并获取信息。
A和B使用10.6.47.xx域进行通信,B和C使用192.168.1.X域进行通信。
尽管我已经尝试过了 ssh user1@10.6.47.102'ssh user2@10.6.47.104'ifconifg eth1'',但似乎引用是个问题。 我已经尝试创建一个include ssh命令的shell脚本来加工C,告诉B ssh到C并执行这个脚本但仍然失败。是否有可能从另一个ssh节点ssh?
感谢您的帮助。
答案 0 :(得分:0)
当然,使用ssh的隧道功能。假设您想要通过端口10022进行隧道传输(任何端口号都可以,只要它在本地计算机上没有使用,并且它是1024或更高):
ssh -L10022:192.168.1.2:22 user1@10.6.47.102
ssh -p10022 user2@127.0.0.1
这两个命令必须在不同的会话中运行(均来自机器A),因为第一个连接必须保持活动状态才能使第二个连接起作用。