不存在密钥时通过 SSH 禁用登录提示

Jus*_*lly 5 openssh

我已经使用私钥/公钥设置了 OpenSSH 服务器,并禁用了密码登录。

我想知道是否有办法在没有密钥的人尝试连接时甚至不显示“登录:”提示。

编辑

好的......我试图实现的目标似乎有些混乱。所以,这是一个更好的解释(我希望)......

当前设置

有密钥的客户端连接,并完成以下过程:

login as: username
BANNER
Authenticating with public key "Key name"
Passphrase for key "key name": *******
Welcome
username@hostname:~$
Run Code Online (Sandbox Code Playgroud)

没有密钥的客户端连接,并经过以下过程:

login as: username
BANNER
Server refused our key
Run Code Online (Sandbox Code Playgroud)

我想要的是

没有密钥的客户端连接,并经历以下过程:

No key, go away.
Run Code Online (Sandbox Code Playgroud)

wxl*_*wxl 5

在服务器端,进行编辑,/etc/ssh/sshd_config以便获得以下行:

PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)

然后重新启动服务器:

sudo service sshd restart
Run Code Online (Sandbox Code Playgroud)

这将消除无需密钥进行身份验证的能力。

但是,您始终必须证明自己的身份,因此无法删除登录提示。

如果您使用ssh username@hostname连接,您将永远不会看到它,但其他人如果连接到没有用户名的主机名,就会看到它。

如果您添加以下内容,则可以使用密钥限制仅对您的用户名进行访问:

AllowUsers username
Run Code Online (Sandbox Code Playgroud)

对于此内容和其他内容,请参阅Ubuntu wiki 页面的 SSH

  • 嗯,这真是太刺激了 (2认同)