我可以在客户端禁用 ssh 密码验证吗?

Lar*_*röm 2 ssh

我正在连接到一个 SSH 服务器,但我无法完全控制 sshd 配置。服务器允许公钥身份验证和密码身份验证,但我想防止 SSH客户端切换到密码身份验证,即使公钥身份验证失败也是如此。

我尝试添加PasswordAuthentication no到服务器条目,~/.ssh/config但没有明显的效果。

有可能吗?

我了解这不会提供任何额外的安全性。我这样做只是为了用户体验目的,以避免某些应用程序陷入等待密码的情况。

Ljm*_*art 5

ssh如果处于批处理模式,则不会提示:

ssh -oBatchMode=yes you@theotherhost command
Run Code Online (Sandbox Code Playgroud)

你可以设置

alias ssh /usr/bin/ssh -oBatchMode=yes
Run Code Online (Sandbox Code Playgroud)

在您的中.bashrc,这将禁用客户端对交互式会话的密码身份验证。(除非你这样做/us/bin/ssh

更详细的方案可能是:

  • 确保/usr/local/binPATH之前/usr/bin
  • 创建一个文件/usr/local/bin/ssh
#!/bin/bash
/usr/bin/ssh $*
Run Code Online (Sandbox Code Playgroud)
  • chmod a+rx /usr/local/bin/ssh

然而,这一切都不是万无一失的。