通过 VNC 连接到需要 .ssh 配置中的 ProxyJump 参数的服务器

通过 VNC 连接到需要 .ssh 配置中的 ProxyJump 参数的服务器

我有 ssh 权限,可以访问某个服务器,我想使用 Remmina 通过远程桌面访问它。该服务器不在我的本地网络上,因此我需要在命令行中输入以下行.ssh/config才能 ssh 访问它:

ProxyJump [email protected]

我在 Remmina 中设置了服务器,如下所示:

Name: foo
Protocol: VNC - VNC Viewer
Server: [its IP address]
User name: my-user
Password: my-pass
Enable SSH Tunnel: True
Custom: [email protected]
SSH Authentication: Password

尝试以这种方式连接的结果是系统提示我输入密码,然后拒绝访问并出现以下错误:

SSH password authentication failed: Access denied.
Authentication that can continue: publickey, password

有人能告知 Remmina 是否可以像 ssh 那样支持 ProxyJump 吗?如果可以,我做错了什么?

答案1

总结

  • 将 remmina 中的“Pre Command”设置为ssh -vNL 12345:[its IP address]:5900 [email protected]
  • 在 remmina 中将“服务器”设置为localhost:12345
  • 在 remmina 中取消勾选“SSH 隧道”

通过这种方式,您可以根据需要进行任意复杂的跳转。当我使用常规 ssh 时,我通过连接到 的192.168.1.42跳转主机连接到内部 ip 。我的 中有以下内容:bastiondomain~/.ssh/config

Host bastion
     HostName bastion.example.com

Host domain
     HostName domain.example.com
     ProxyJump bastion

Host internal
     HostName 192.168.1.42
     ProxyJump domain
     # Needs to go via `domain` since bastion is on a completely separate network

有了这个配置,我就可以了ssh internal,但 remmina 当然不明白这一点。如果不需要通过bastion,我可以使用domain:22“SSH 隧道”设置,但现在我需要同时通过两者。

因此,我们通过以下方式打开从localhost:12345RDP/VNC 端口 5900 的隧道:internaldomain

ssh -vNL 12345:129.242.131.140:5900 domain

您可以在终端中尝试此操作,然后从另一个终端执行此操作telnet localhost 12345- 如果端口正确,您应该会看到

$ telnet localhost 12345
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
RFB 003.889

(按 ctrl+] 和 ctrl+d 退出)。如果这不起作用,您可能需要尝试 5900 以外的其他端口(我认为对于多个显示器,它将使用 5901、5902 等)。

现在只需ssh -vNL 12345:129.242.131.140:5900 domain输入 remmina 的“Pre Command”,并用作localhost:12345服务器,然后取消勾选“SSH Tunnel”。

相关内容