该设计:多个网络安全区域,有些仅包含 Linux 服务器,有些仅包含 Windows。
客观的:scp
使用 Win10 OpenSSH 作为代理在两个 Linux 服务器之间进行安全复制 ( )
linux1 (zone A) > Win10-1 (zone B) > linux2 (zone C)
[更新:一些进展] 身份验证基于 SSH 密钥。我运行 ssh-keygenlinux1
并将 .pub 文件复制到Win10-1
,然后将内容复制到C:\Users\[username]\.ssh\authorized_keys
,这按预期工作:我可以从 sshlinux1
进入Win10-1
无密码。相同的程序应该ssh-keygen
运行时工作Win10-1
;我有我的密钥对并将 pub 文件复制到,linux2
但从 登录到Win10-1
usinglinux2
失败ssh user@linux2
并且 Powershell 提示挂起 - 但如果我这样做Start ssh user@linux2
,那么它就可以工作。
为了测试预期的连接,我做了:
#linux1: ssh -J username@proxy-win10 username@target-linux2
它让我顺利通过 - 但只有在提示输入登录密码之后linux2
。
我怀疑最后一个障碍是必需的Start ssh user@linux2
- OpenSSH 服务器实例是否可能损坏?
答案1
这实际上主要是一个安全问题。
第1点
SSH 代理有用的唯一方法是当目标主机位于公共网络后面时,如下所示:
+--- Office Computer 1
Internet <--- Router-NAT-Firewall <--+--- Office Computer 2
+--- Linux Server (no port forwarding)
+=== Windows Server (with SSH port forwarding)
否则,您的 Windows 服务器只是安全剧院中表演的演员。
第2点
SSH 对于应用程序来说是一种非常有用的传输协议,您应该通过强制用户使用公钥加密技术来验证自己的身份来最大限度地提高其安全性。
在“sshd_config”中:
使用“AllowUsers”指令选择允许从 SSH 登录的用户。
对所选用户使用“Match”指令,并使用“AuthenticationMethods”指令限制他们使用密码登录。