CentOS SSH 密码登录配置指南
一、SSH 简介
SSH(Secure Shell)是一种加密的网络传输协议,用于在不安全的网络中安全地远程登录和其他网络服务,SSH使用公钥加密来认证远程的计算机,以确保数据的机密性和完整性。
二、配置步骤
1. 生成密钥对
在服务器上生成一对公钥和私钥:
sshkeygen t rsa
按提示操作,可以选择存储路径和设置密钥密码,完成后,会在~/.ssh
目录下生成两个文件:id_rsa
(私钥)和id_rsa.pub
(公钥)。
2. 安装公钥
将公钥复制到服务器的目标用户账户中:
sshcopyid user@server_ip
此命令会将本地公钥追加到远程服务器对应用户的~/.ssh/authorized_keys
文件中。
3. 配置 SSH
编辑 SSH 配置文件以启用公钥认证并禁用密码认证:
sudo vim /etc/ssh/sshd_config
确保以下配置项存在且未被注释:
RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication no ChallengeResponseAuthentication no UsePAM yes
保存并关闭文件后,重启 SSH 服务:
sudo systemctl restart sshd
4. 验证配置
尝试使用以下命令进行登录,确认是否成功:
ssh user@server_ip
如果配置正确,系统不应提示输入密码。
5. (可选)修改端口号
为了增强安全性,可以修改 SSH 默认端口号(22):
sudo vim /etc/ssh/sshd_config
找到并修改Port
配置项:
Port 新的端口号
保存后,重新启动 SSH 服务:
sudo systemctl restart sshd
6. 防火墙设置
确保防火墙允许新的 SSH 端口号:
sudo firewallcmd permanent addport=新的端口号/tcp sudo firewallcmd reload
三、常见问题及解决方法
Q1: 无法通过公钥认证登录怎么办?
A1: 确保公钥已正确复制到远程服务器的~/.ssh/authorized_keys
文件中,并且权限设置正确:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
检查 SSH 服务是否正在运行,并且配置文件中没有语法错误。
Q2: 如何更改 SSH 端口数?
A2: 编辑 SSH 配置文件/etc/ssh/SSHD_config
,找到并修改Port
配置项,然后重启 SSH 服务即可,记得更新防火墙规则以允许新的端口号通过。