我已经使用私钥/公钥设置了 OpenSSH 服务器,并禁用了密码登录。
我想知道是否有一种方法可以使得当没有密钥的人尝试连接时甚至不显示“登录:”提示。
编辑
好吧...似乎有人对我试图实现的目标有些困惑。所以,这里有一个更好的解释(我希望)...
当前设置
持有密钥的客户端连接并经历以下过程:
login as: username
BANNER
Authenticating with public key "Key name"
Passphrase for key "key name": *******
Welcome
username@hostname:~$
没有密钥的客户端连接并经历以下过程:
login as: username
BANNER
Server refused our key
我想要的是
没有密钥的客户端连接,并经历以下过程:
No key, go away.
答案1
在服务器端,进行编辑/etc/ssh/sshd_config
以获得以下行:
PasswordAuthentication no
然后重新启动服务器:
sudo service sshd restart
这将消除无需密钥即可进行身份验证的能力。
然而,您始终需要确认自己的身份,因此您无法删除登录提示。
如果您使用ssh username@hostname
连接,您将永远看不到它,但如果其他人连接到没有用户名的主机名,就会看到它。
你可以通过添加上述内容来限制只有你的用户名才能使用密钥进行访问:
AllowUsers username
对于这一点和其他事情,请参阅Ubuntu SSH 维基页面。