我想通过我自己的服务器使用 SSH 远程转发连接到公司计算机(“目标”服务器),通过在目标上运行如下命令:
ssh -R '*:10000:localhost:22' forwarding-server
问题是目标并不总是保持最新状态,而我对此没有控制权。我不想让它的 SSH 服务器可直接从互联网访问。
理想情况下,我希望要求身份验证到转发服务器,使用 SSH 密钥,然后才允许转发到目标服务器。当我在测试机器上设置此功能时,连接立即被转发到目标服务器。
有没有办法要求身份验证前连接被转发了吗?
答案1
有没有办法在转发连接之前要求进行身份验证?
SSH 的工作方式实际上就是这样的——除非转发服务器的管理员故意已禁用由于某种原因,身份验证。
运行添加选项的命令-v -v
。您将看到以下可能性之一:
- 您正在使用 SSH 公钥自动进行身份验证;
- 您正在使用 GSSAPI (Kerberos) 自动进行身份验证;
- 您正在使用多路复用连接(ControlMaster / ControlPath),即仅向已经过身份验证的会话添加新隧道;
- 所有身份验证机制都被跳过,因为远程帐户的密码为空白,并且服务器已配置为允许这样做。