CentOS SSH配置实操技巧详解
本文聚焦CentOS SSH配置实操技巧,旨在为用户提供一系列实用操作指南,通过掌握这些技巧,用户可提升CentOS系统SSH服务的安全性与效率,优化远程管理体验。
CentOS SSH配置全攻略:从入门到实战,一篇搞定!
嘿,各位运维小伙伴们,今天咱们来聊聊CentOS上的SSH配置,SSH,全称Secure Shell,那可是咱们远程管理Linux服务器的得力助手啊!无论是日常运维、开发调试,还是服务器管理,SSH都是必不可少的工具,SSH配置要是没弄好,那可就麻烦大了,安全性、效率都可能受影响,今天我就带大家一步步来搞定CentOS上的SSH配置,从基础到实战,一篇全搞定!

SSH基础认知
咱们得明白SSH是干啥的,SSH就是一种网络协议,它允许咱们在不安全的网络中,通过加密的方式远程登录到另一台计算机上,这样,咱们就能像操作本地计算机一样操作远程服务器了,多方便啊!
在CentOS上,SSH服务通常是由OpenSSH提供的,OpenSSH是一个开源的SSH实现,功能强大,安全性高,是咱们运维人员的首选。
安装与启动SSH服务
好了,言归正传,咱们开始动手配置SSH,得确保CentOS上已经安装了OpenSSH,大部分CentOS系统默认都安装了OpenSSH,但咱们还是检查一下,确保万无一失。
打开终端,输入以下命令:
rpm -qa | grep openssh
如果看到类似openssh-server
和openssh-clients
的输出,那就说明已经安装了,如果没有,那就得赶紧安装一下:

sudo yum install -y openssh-server openssh-clients
安装完成后,咱们就可以启动SSH服务了:
sudo systemctl start sshd
为了确保SSH服务在系统启动时自动启动,咱们还得设置一下开机自启:
sudo systemctl enable sshd
SSH配置文件详解
咱们得深入了解一下SSH的配置文件,SSH的主要配置文件是/etc/ssh/sshd_config
,这个文件里包含了SSH服务的各种配置选项,咱们可以通过修改这个文件来定制SSH服务的行为。
打开配置文件:
sudo nano /etc/ssh/sshd_config
(这里我用nano
编辑器作为示例,你也可以用vim
或其他你喜欢的编辑器。)
配置文件里有很多选项,咱们不可能一一介绍,但有几个关键的选项,咱们得重点关注一下:
- Port:SSH服务的端口号,默认是22,为了安全起见,咱们可以考虑修改这个端口号。
- PermitRootLogin:是否允许root用户通过SSH登录,默认是
yes
,但出于安全考虑,咱们最好改成no
。 - PasswordAuthentication:是否允许密码认证,默认是
yes
,但如果你已经配置了密钥认证,那就可以考虑关掉密码认证,提高安全性。 - PubkeyAuthentication:是否允许公钥认证,这个选项默认是
yes
,咱们通常都会保留这个设置。
举个例子,假设咱们想把SSH端口改成2222,并且禁止root用户登录,只允许密钥认证,那咱们就可以这样修改配置文件:
Port 2222 PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes
修改完成后,别忘了保存文件并退出编辑器。
重启SSH服务
配置文件修改完成后,咱们得重启SSH服务,让新的配置生效:
sudo systemctl restart sshd
重启完成后,咱们就可以尝试用新的配置来连接SSH服务了。
密钥认证配置
说到SSH的安全配置,密钥认证可是个重头戏,相比密码认证,密钥认证更加安全,因为密钥对是唯一的,而且难以被破解。
咱们得在客户端生成一对密钥,打开终端,输入以下命令:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
这个命令会生成一对RSA密钥,密钥长度是4096位,并且会给密钥加上一个注释(通常是你的邮箱地址),生成过程中,系统会提示你输入密钥的保存位置和密码(可选),咱们通常直接按回车,使用默认设置就行。
密钥生成完成后,咱们会看到两个文件:id_rsa
(私钥)和id_rsa.pub
(公钥),私钥一定要妥善保管,不能泄露给任何人,公钥则可以上传到服务器,用于认证。
上传公钥到服务器的方法有很多,这里我介绍一种简单的方法:使用ssh-copy-id
命令,假设你的服务器IP是168.1.100
,用户名是user
,那就可以这样上传公钥:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.100
这个命令会自动把公钥添加到服务器的~/.ssh/authorized_keys
文件中。
上传完成后,咱们就可以尝试用密钥来连接SSH服务了:
ssh -p 2222 user@192.168.1.100
(注意,这里咱们用了-p
选项来指定端口号,因为咱们之前把SSH端口改成了2222。)
如果一切配置正确,你应该能成功登录到服务器上,而且不需要输入密码。
SSH安全加固
除了密钥认证,咱们还可以采取一些其他措施来加固SSH服务的安全性。
- 使用防火墙限制SSH访问:咱们可以用防火墙来限制哪些IP地址可以访问SSH服务,这样即使端口号被扫描到了,攻击者也无法轻易连接到服务器上。
- 定期更新SSH软件:SSH软件也会存在安全漏洞,咱们得定期更新SSH软件,确保使用的是最新版本。
- 禁用不必要的SSH功能:咱们可以禁用SSH的X11转发、代理转发等功能,减少潜在的安全风险。
实战案例:搭建安全的SSH服务器
说了这么多,咱们来实战一下,搭建一个安全的SSH服务器。
假设咱们有一台新的CentOS服务器,IP地址是168.1.200
,咱们想在这台服务器上搭建一个安全的SSH服务。
- 安装OpenSSH:
sudo yum install -y openssh-server openssh-clients
- 启动并设置SSH服务开机自启:
sudo systemctl start sshd sudo systemctl enable sshd
- 修改SSH配置文件:
打开/etc/ssh/sshd_config
文件,修改以下选项:
Port 2222 PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes
- 重启SSH服务:
sudo systemctl restart sshd
- 在客户端生成密钥对,并上传公钥到服务器:
在客户端终端输入:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.200
(注意,这里user
是你在服务器上的用户名。)
- 尝试用密钥连接SSH服务:
ssh -p 2222 user@192.168.1.200
如果一切配置正确,你应该能成功登录到服务器上。
好了,今天咱们就聊到这里,通过这篇文章,你应该已经掌握了CentOS上SSH配置的基本方法和一些安全加固的技巧,SSH配置虽然看起来有点复杂,但只要咱们按照步骤来,一步步操作,其实并不难。
我想强调的是,SSH安全非常重要,咱们一定要定期检查和更新SSH配置,确保服务器的安全性,咱们也要养成良好的安全习惯,比如定期更换密钥、使用强密码等,咱们才能确保服务器的安全稳定运行。