使用 Remmina 1.2.0 和 SSH 隧道

使用 Remmina 1.2.0 和 SSH 隧道

我正在使用 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

您不再需要自己打开 ssh 隧道了。Remmina(至少当前版本 1.4.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:

  1. 在 remmina 外部创建隧道,并使用 remmina 在该隧道上进行 RDP
  2. 在 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中的设置Basiclocalhost:$LOCAL_PORT,并将远程桌面的用户名和密码设置为 Windows VM。Remmina 1.4 中的 BASIC 选项卡如下所示:

Remmina 1.4 的基本选项卡上所需的设置

对我来说棘手的是方法 2:

  1. 设置方法 1 后,右键单击 Remmina 窗口中的 Remmina RDP 连接配置,进行复制,并为其指定一个新名称(我添加了“tunnelled”一词)
  2. 编辑条目
  3. Basic选项卡上,更改Server为 的值PRIVATE_RDP_IP:RDP_PORT,例如10.0.0.1:3389
  4. SSH Tunnel标签上,
    • 启用 SSH 隧道
    • 在 中Custom,输入SSH_SERVER_DOMAIN_NAME
    • 输入UsernameSSH_SERVER_USER
    • 导航SSH Identity file到您的私钥文件并选择它

SSH 隧道如下所示:

在此处输入图片描述

保存并单击连接。第一次,系统会要求您接受主机,然后 RDP 将启动。后续连接不会要求接受。

您无需将私钥添加到 ssh-agent 即可实现此功能。基本上,启动本地主机并打开 Remmina 后,即可连接。

相关内容