将 SSH 服务器配置为不通过本地主机连接询问密钥或密码

Sla*_*lav 1 ssh security authentication password openssh

我正在尝试解决一个奇怪的案例,所以请耐心等待。

我想使用[别急]带有签名OpenSSH 密钥的图形 Windows 工具(如 WinSCP、PuTTY 等)。这些工具不支持签名密钥。但他们确实支持很多“转发”和“代理”方法。

我可以使用“本地代理”来设置它们,该代理实际上执行 OpenSSH命令服务器的签名密钥执行 OpenSSH 命令并设置隧道:本地端口2222转发到服务器的127.0.0.1:22

太好了,现在 Windows 工具可以ssh/scp通过已经经过身份验证的隧道执行命令...但他们尝试做的第一件事是:打开 ssh 并进行身份验证(并且他们无法传递签名密钥...)。

那么,由于我已经在隧道上进行了身份验证,我可以将远程计算机的 ssh 服务器配置为询问密码或密钥?

请注意,我并不是在谈论“跳转”服务器以到达“远程”。我只有 1 个“远程”服务器。

长话短说:

在我的 Ubuntu 服务器上,我不想被ssh user@127.0.0.1要求提供密钥或密码,但前提是请求来自 127.0.0.1

Mar*_*ryl 5

您可以通过将这些行添加到顶部来为用户设置一个空密码,并允许使用来自本地主机的空密码进行身份验证到文件 /etc/ssh/sshd_config

\n\n
Match Address 127.0.0.*\n  PermitEmptyPasswords yes\n
Run Code Online (Sandbox Code Playgroud)\n\n

使得 OpenSSH 接受“无”身份验证

\n\n
\n

可用的身份验证方法为: \xe2\x80\x9cgssapi-with-mic\xe2\x80\x9d、\xe2\x80\x9chostbased\xe2\x80\x9d、\xe2\x80\x9ckeyboard-interactive\xe2\x80\x9d , \xe2\x80\x9cnone\xe2\x80\x9d(用于在以下情况下访问无密码帐户)PermitEmptyPasswords)、\xe2\x80\x9cpassword\xe2\x80\x9d 和 \xe2\x80\x9cpublickey\xe2\x80 \x9d。

\n
\n\n

WinSCP 和 PuTTY 自动尝试“无”身份验证。因此,他们甚至不应该询问(空)密码。

\n\n
\n\n

感谢@pa4080 建议简化我的解决方案。

\n