随着虚拟主机和云服务的普及,SSH(Secure Shell)已成为远程管理服务器的一种主流方式。CentOS作为一款流行的Linux发行版,默认情况下SSH服务是开启的。然而,出于安全考虑,很多用户可能会选择关闭SSH服务或限制SSH登录。本文将详细介绍如何在CentOS上允许SSH登录,并确保操作的安全性。
在开始配置之前,首先需要确认SSH服务是否已经开启。可以通过以下命令进行检查:
sudo systemctl status ssh
如果SSH服务没有开启,可以通过以下命令启动SSH服务:
sudo systemctl start ssh
为了在系统重启后自动启动SSH服务,可以使用以下命令:
sudo systemctl enable ssh
为了安全起见,不建议使用root用户进行SSH登录。你可以创建一个新的用户来管理服务器。以下是创建用户的步骤:
sudo useradd -m -d /home/newuser -s /bin/bash newuser
sudo passwd newuser
其中,`newuser`是新的用户名,你可以根据实际情况修改。`-m`参数表示创建用户的同时创建用户主目录,`-d`参数指定用户主目录的路径,`-s`参数指定用户默认的shell。
SSH服务配置文件位于`/etc/ssh/`目录下,主要涉及以下三个文件:
以下是对`sshd_config`文件的一些基本配置建议:
Port 22 SSH端口,默认为22
PermitRootLogin no 禁止root用户登录
PasswordAuthentication yes 允许密码认证
PermitUsers newuser 允许特定用户登录
AllowUsers newuser 同上
配置完成后,可以使用以下命令重启SSH服务使配置生效:
sudo systemctl restart ssh
为了提高SSH登录的安全性,推荐使用密钥认证。以下是生成密钥对和配置SSH客户端的步骤:
ssh-keygen -t rsa -b 4096
cat ~/.ssh/id_rsa.pub | ssh newuser@yourserverip 'cat >> ~/.ssh/authorized_keys'
配置完成后,尝试使用SSH密钥登录服务器:
ssh -i ~/.ssh/id_rsa newuser@yourserverip
确保SSH端口(默认22)已经添加到防火墙的允许列表中。以下是在CentOS上设置防火墙的示例:
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
为了确保系统的安全性,定期更新系统是必不可少的。可以使用以下命令进行系统更新:
yum update