我正在使用 SSH 隧道和 remmina 客户端连接到远程机器。
首先我在终端中打开隧道:
ssh -L 3309:<server_address>:3389 user@<aws_bastion>
然后我只需使用该服务器的用户名和密码通过 remmina 连接到 localhost:3309 端口即可。一切正常。
我想知道我是否可以直接在 remmina 中设置这个 SSH 隧道
我尝试指定以下内容
然后连接到我的 <aws_bastion> 服务器,但它不起作用。我想知道如何在 GUI 客户端中翻译该隧道命令?
答案1
它在我的例子中有效并且我认为奇怪的配置是:
- 在SSH 隧道,最好使用
SSH Agent
基于的身份验证。 - 在基本的
localhost
设置,即使我输入了服务器的 IP,服务器也应该启动SSH 隧道。
希望这可以帮助。
使用对我有用的配置进行更新:
基本选项卡。
这取决于远程的 vnc 服务器设置。
- 服务器:localhost:5900(假设 vnc 服务器监听本地主机的 5900 端口)
- 用户密码:您的 vnc 密码
SSH 隧道:
- 打钩启用 SSH 隧道。
- 选择自定义:
VNC_SERVER_IP_ADDRESS:22
(22是SSH的端口) - 在SSH 身份验证:根据远程 ssh 配置,使用密码或使用SSH 代理。
答案2
答案3
虽然我不认为 Remmina 支持设置初始 SSH 隧道,但你始终可以为其运行脚本。类似这样的脚本:
!/bin/bash ssh -L 3309:<server_address>:3389 user@<aws_bastion> remmina -c (connectionname)
当然,您需要创建一个特定于您的连接的连接文件,但随后该脚本应该启动隧道并一次性连接到指定的机器。
https://superuser.com/questions/628371/how-to-run-linux-remmina-from-the-terminal
此链接详细说明了如何创建这样的配置文件。
答案4
其他答案中的信息无效或不清楚。
对于以下情况:
your local host --> ssh server (tunnel) --> Windows VM supporting RDP
假设 Windows VM 上的 RDP 端口已打开,并且假设 ssh 服务器上已设置 ssh,则您有两种选择可以通过 ssh 服务器的 ssh 隧道使用 remmina 进行 RDP:
- 在 remmina 外部创建隧道,并使用 remmina 在该隧道上进行 RDP
- 在 remmina 中创建隧道,然后 remmina 将其用于 RDP
首先使方法 1 起作用,因为它更容易设置 IMO。
对于方法 1,您首先需要以下内容:
ssh -i PATH_TO_PRIV_KEY_OF_SSH_SERVER -L LOCAL_PORT:PRIVATE_RDP_IP:RDP_PORT SSH_SERVER_USER@SSH_SERVER_DOMAIN_NAME
您可以将这些命令行参数放入您的命令行中,~/.ssh/config
这样您就可以编写ssh YOUR_ALIAS
。但这对方法 2 没有用,而且该信息很容易在网上找到(chatGPT 在将 CLI 参数转换为 ssh 配置文件语法方面做得很好)。
但基本上对于方法 1 你需要告诉 ssh
- 使用哪个私钥(
PATH_TO_PRIV_KEY_OF_SSH_SERVER
) - 要使用的本地端口 (
LOCAL_PORT
) PRIVATE_RDP_IP
您想要通过 SSH 隧道访问的Windows VM 的私有 IP( )- RDP 在 Windows VM 上监听的端口(
RDP_PORT
) - SSH 服务器上的用户名(
SSH_SERVER_USER
) - SSH 服务器域名(
SSH_SERVER_DOMAIN_NAME
)
这假设 SSH 服务器上的 ssh 正在监听端口 22,否则也请指定这一点。
一旦 ssh 命令运行,您就会在 SSH 服务器上看到终端提示符。只要您有带该提示符的 shell,隧道就会处于活动状态。
现在使用方法 1 设置 remmina,因为该设置非常简单:将选项卡Server
中的设置Basic
为localhost:$LOCAL_PORT
,并将远程桌面的用户名和密码设置为 Windows VM。Remmina 1.4 中的 BASIC 选项卡如下所示:
对我来说棘手的是方法 2:
- 设置方法 1 后,右键单击 Remmina 窗口中的 Remmina RDP 连接配置,进行复制,并为其指定一个新名称(我添加了“tunnelled”一词)
- 编辑条目
- 在
Basic
选项卡上,更改Server
为 的值PRIVATE_RDP_IP:RDP_PORT
,例如10.0.0.1:3389
- 在
SSH Tunnel
标签上,- 启用 SSH 隧道
- 在 中
Custom
,输入SSH_SERVER_DOMAIN_NAME
- 输入
Username
值SSH_SERVER_USER
- 导航
SSH Identity file
到您的私钥文件并选择它
SSH 隧道如下所示:
保存并单击连接。第一次,系统会要求您接受主机,然后 RDP 将启动。后续连接不会要求接受。
您无需将私钥添加到 ssh-agent 即可实现此功能。基本上,启动本地主机并打开 Remmina 后,即可连接。