商业网站的后缀网站建设标准
查看ssh是否开启
sudo systemctl status sshd
虚拟机 CentOS 登录不需要密码(通常是开启了自动登录或者 root 账户未设置密码)
WinSCP 连接时要求密码 → 因为 SSH 服务总是需要用户名 + 密码或密钥认证
这两个现象看似矛盾,其实是 Linux 图形界面自动登录和 SSH 安全策略不同导致的。
🔑 原因
图形界面自动登录
在虚拟机桌面登录时无需密码,是因为 GDM/KDM/LightDM 自动登录功能开启了
SSH 服务要求认证
SSH 默认不允许空密码账户登录(为了安全),所以即使你在 GUI 不用密码,也无法通过 WinSCP 直接连上
🛠 解决方案
方案 1:给用户设置密码(推荐)
在 CentOS 虚拟机终端执行:
sudo passwd your_username
系统会提示输入两次新密码
WinSCP 连接时就用这个密码登录即可
✅ 安全可靠,适合测试和生产环境
方案 2:允许空密码通过 SSH(不推荐,安全风险大)
编辑 SSH 配置文件:
sudo vim /etc/ssh/sshd_config
找到(或添加):
PermitEmptyPasswords yes
重启 SSH 服务:
sudo systemctl restart sshd
注意:这样做任何空密码账户都能通过 SSH 登录,非常危险,只适合本地测试环境
方案 3:使用 SSH 密钥登录(免密码登录)
在本机生成密钥对:
ssh-keygen -t rsa
将公钥复制到 CentOS 虚拟机:
ssh-copy-id username@centos_vm_ip
配置 WinSCP 使用私钥文件登录
✅ 安全且无需输入密码,但首次还是要设置密钥
🔑 总结
| 方法 | 优点 | 缺点 |
|---|---|---|
| 设置用户密码 | 简单直接 | 需要输入密码 |
| PermitEmptyPasswords | 免密码,快速测试 | 安全风险极高,不推荐 |
| SSH 密钥认证 | 安全免密码 | 需要生成密钥并配置 |
💡 建议:
直接给虚拟机用户设置一个密码 → WinSCP 就能正常连接
不要用空密码方式连接 SSH,否则会有严重安全隐患
如果你愿意,我可以帮你写一条 一键给当前用户设置密码并让 WinSCP 能直接连接 的命令。
你希望我写吗?
