我需要在这样的配置中连接到几个VNC服务器:
+---------+
|LOCALHOST|
+----+----+
|
|VPN
|
+--v--+
|HOST1|
+--+--+
|
|NETWORK1
|
+------v------+
|HOST2 |
|VNC 5901:5901|
+------+------+
|
|NETWORK2
|
+------v------+
|HOST3 |
|VNC 5902:5901|
+-------------+因此,为了连接到VNC服务器,我运行了一些SSH隧道,以重定向端口5901和5902中的通信量。
隧道的命令如下所示:
# Terminal 1
ssh user1@host1
ssh user2@host2
ssh -L 5902:127.0.0.1:5901 -C -N -l user3 host3 -vvv
# Terminal 2
ssh user1@host1
ssh -L 5902:127.0.0.1:5902 -C -N -l user2 host2 -vvv
# Terminal 3
ssh user1@host1
ssh -nNT -L 5901:host2:5901 user1@host1 -vvv
# Terminal 4
ssh -L 5902:127.0.0.1:5902 -C -N -l user1 host1 -vvv
# Terminal 5
ssh -nNT -L 5901:host1:5901 user1@host1 -vvv(有点杂乱无章的命令,但是它们能工作)
在每个终端中,这都会提示一条消息来键入用户的密码,并会一直运行一个进程,直到进程中止或发生连接超时。
所以这很好,我可以使用localhost:5901和localhost:5902从我的笔记本电脑连接到VNC服务器。
问题是,我必须输入很多这样的命令,一次又一次输入相同的密码,打开几个每天打开几次的终端(因为连接超时),而且它很快就老了。
所以我想知道这是否可以被自动化,要求任何脚本或程序都可以深入到几个运行命令的主机中,其中一些命令提示需要输入的密码,并且这个过程中的一些会一直运行直到Ctrl+C被按下。
我要求程序或bash命令的名称,这些程序或bash命令可以用于自动化这类场景,这样我就可以研究解决方案了。谢谢。
发布于 2021-09-03 19:19:40
使用基于GUI的应用程序,您可以使用猫。
猫允许您定义连接配置文件,并允许您将配置文件链接为跳转配置文件。
因此,在为HOST1定义连接之后,您可以将HOST2与HOST1定义为跳转主机,将HOST3与HOST2定义为跳转主机。
对于命令行,您可以继续使用SSH,只需在~/.ssh/config文件中配置隧道和C1主机,下面是一个示例:
Host _host1
Hostname host.fqdn
User username1
Port 22
Host _host2
Hostname host2.fqdn
User username2
ProxyJump _host1
LocalForward 5091 localhost:5091
Host _host3
Hostname host3.fqdn
User username3
ProxyJump _host2
LocalForward 5092 localhost:5091然后从命令行运行:
ssh _host3https://softwarerecs.stackexchange.com/questions/80433
复制相似问题