在CentOS系统中添加SSH连接是远程管理服务器的常见需求,通过SSH协议可以安全地执行命令、传输文件和管理系统,以下是详细的步骤和注意事项,帮助您顺利完成配置。

安装SSH服务
CentOS默认可能未安装SSH服务,需手动安装,以root用户或具有sudo权限的用户登录系统,打开终端,执行以下命令更新软件包列表:
yum update -y
随后安装OpenSSH服务器:
yum install openssh-server -y
安装完成后,启动SSH服务并设置为开机自启:
systemctl start sshd
systemctl enable sshd
通过systemctl status sshd检查服务状态,确保显示“active (running)”。
配置SSH服务
SSH的主配置文件位于/etc/ssh/sshd_config,使用vi或nano编辑器修改:
vi /etc/ssh/sshd_config
关键配置项包括:
- 端口设置:默认端口为22,可修改为其他端口(如2222)增强安全性,需确保端口未被占用。
- root登录:将
PermitRootLogin yes改为no,禁止root直接登录,改用普通用户提权。 - 密码认证:若需密钥认证,设置
PasswordAuthentication no;若保留密码登录,保持yes。 - 允许用户:在
AllowUsers后添加允许登录的用户名,如AllowUsers user1 user2。
修改后保存文件,执行systemctl restart sshd重启服务使配置生效。
配置防火墙规则
CentOS默认防火墙可能阻止SSH连接,需添加规则放行端口,使用firewall-cmd命令:
firewall-cmd --permanent --add-service=ssh
或直接开放指定端口(如自定义端口2222):
firewall-cmd --permanent --add-port=2222/tcp
重新加载防火墙配置:
firewall-cmd --reload
验证规则是否生效:firewall-cmd --list-all,确保SSH或自定义端口出现在列表中。

使用SSH客户端连接
配置完成后,可通过SSH客户端连接服务器,Linux或macOS系统使用终端命令:
ssh username@server_ip -p port
ssh user@192.168.1.100 -p 2222
Windows系统可使用PuTTY、Xshell等工具,输入服务器IP、端口和用户名即可,首次连接时会提示保存主机密钥,输入“yes”继续,随后输入密码登录。
增强SSH安全性
为进一步提高安全性,建议采取以下措施:
- 密钥认证:生成SSH密钥对(
ssh-keygen),将公钥(~/.ssh/id_rsa.pub)上传到服务器的~/.ssh/authorized_keys文件中,禁用密码登录。 - 失败登录限制:使用
fail2ban工具拦截频繁失败登录的IP地址。 - 定期更新:保持系统和SSH服务版本最新,及时修补安全漏洞。
常见问题排查
若连接失败,可检查以下事项:

- SSH服务是否运行:
systemctl status sshd。 - 防火墙是否放行端口:
firewall-cmd --list-ports。 - 配置文件语法是否正确:
sshd -t测试配置。 - 查看服务器日志:
/var/log/secure定位错误信息。
相关问答FAQs
Q1: 忘记SSH密码且无法登录服务器怎么办?
A1: 若无法通过SSH登录,可尝试进入服务器控制台(如VNC或物理终端),重置用户密码,若root被禁用,可通过单用户模式重置:开机时按“e”编辑启动参数,将ro改为rw init=/sysroot/bin/sh,重启后执行chroot /sysroot修改密码,最后exit重启系统。
Q2: 如何修改SSH默认端口后仍无法连接?
A2: 首先确认防火墙已开放新端口(如firewall-cmd --add-port=2222/tcp --permanent),并重启防火墙,其次检查/etc/ssh/sshd_config中端口配置是否正确,无语法错误,最后确保客户端连接时使用-p参数指定新端口,如ssh -p 2222 user@ip,若问题依旧,查看服务器日志/var/log/secure排查具体错误原因。