Xshell免密钥登录CentOS7教程
要让Xshell连接CentOS 7虚拟机时仅输入密码而不使用密钥认证,需修改服务器端的SSH配置。以下是详细步骤:
步骤1:登录CentOS 7虚拟机(需临时用密钥或控制台)
如果当前无法直接登录,可通过虚拟机控制台(如VMware/VirtualBox的控制台)进入系统。
步骤2:修改SSH服务端配置
编辑配置文件:
sudo vi /etc/ssh/sshd_config关键参数修改:
确保以下参数设置为以下值:
PasswordAuthentication yes # 启用密码认证 PubkeyAuthentication no # 禁用密钥认证(关键!) ChallengeResponseAuthentication no # 可选:禁用交互式认证 UsePAM yes # 启用PAM(通常默认开启)
保存并退出:
在
vi中按Esc,输入:wq保存。
步骤3:重启SSH服务
sudo systemctl restart sshd步骤4:关闭防火墙或放行SSH(如有必要)
sudo systemctl stop firewalld # 临时关闭防火墙
sudo systemctl disable firewalld # 永久禁用(可选)或放行SSH端口(默认22):
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload步骤5:在Xshell中重新连接
删除原有密钥配置:
打开Xshell会话属性(右键会话 → Properties)。
在 User Authentication中选择 Password,确保密钥选项未勾选。
输入正确的用户名和密码。
测试连接:
点击 Connect,应仅需输入密码即可登录。
常见问题排查
仍提示需要密钥:
检查
sshd_config中是否有重复或冲突的配置(如AuthenticationMethods)。运行
sudo grep -i "Pubkey" /etc/ssh/sshd_config确认无其他覆盖设置。
权限问题:
确保用户家目录权限正确:
sudo chmod 700 ~ sudo chmod 600 ~/.ssh/authorized_keys # 如果文件存在需删除
SELinux干扰:
临时禁用SELinux测试:
sudo setenforce 0若成功,需调整SELinux策略或永久禁用(不推荐)。
通过以上步骤,SSH服务将仅允许密码认证。完成后建议重新启用防火墙,并确保密码强度足够。如需恢复密钥认证,反向修改配置即可。
