Azure VM如何配置SSH同时支持公钥认证与密码登录?
实现Azure VM同时支持公钥和密码登录的配置修改
完全可以同时启用两种认证方式,用户会先尝试公钥认证,失败后自动切换到密码认证。针对你的sshd_config文件,需要做以下修改:
1. 显式启用公钥认证
找到配置中的这一行:
#PubkeyAuthentication no
将其修改为:
PubkeyAuthentication yes
(注:OpenSSH默认公钥认证是开启的,但显式设置可以避免因默认配置变更导致的问题)
2. 确认密码认证已启用
你的配置中已经设置了:
PasswordAuthentication yes
这部分无需修改,但要检查/etc/ssh/sshd_config.d/*.conf目录下的文件是否有覆盖该设置的内容。
3. 可选:允许root用户密码登录(如果需要)
如果需要root账号也能通过密码登录,找到这一行:
#PermitRootLogin prohibit-password
修改为:
PermitRootLogin yes
如果不需要root密码登录,保持原配置即可(此时root只能通过公钥登录)。
4. 重启SSH服务使配置生效
执行以下命令重启sshd服务:
# 对于systemd系统(Ubuntu 16.04+/Debian 9+等) sudo systemctl restart sshd # 对于非systemd系统(如旧版Ubuntu/Debian) sudo service ssh restart
验证配置
修改完成后,不要关闭当前SSH连接,新开一个终端窗口分别测试:
- 使用公钥登录,确认正常
- 移除本地公钥后尝试密码登录,确认正常
内容的提问来源于stack exchange,提问作者imawful
相关产品推荐
相关产品推荐

