在CentOS系统中,SSH(Secure Shell)是一种广泛使用的协议,用于安全地远程登录和管理服务器,通过SSH,用户可以加密数据传输,确保通信过程中的安全性,本文将详细介绍如何在CentOS系统中使用SSH,包括安装配置、远程连接、密钥认证以及常见问题的解决方法。

安装SSH服务
在CentOS系统中,SSH服务通常由OpenSSH软件包提供,默认情况下,CentOS可能未安装SSH服务,因此需要手动安装,使用root权限或具有sudo权限的用户登录系统,打开终端,执行以下命令更新系统软件包列表:
sudo yum update -y
安装OpenSSH服务器:
sudo yum install openssh-server -y
安装完成后,启动SSH服务并设置开机自启:
sudo systemctl start sshd sudo systemctl enable sshd
配置SSH服务
SSH服务的配置文件位于/etc/ssh/sshd_config,使用文本编辑器(如vim或nano)打开该文件:
sudo vim /etc/ssh/sshd_config
在配置文件中,可以修改以下参数:
Port:指定SSH服务的端口号,默认为22,建议修改为其他端口以提高安全性。PermitRootLogin:是否允许root用户直接登录,建议设置为no,改用普通用户登录。PasswordAuthentication:是否允许密码认证,建议设置为no,改用密钥认证以提高安全性。AllowUsers:指定允许登录的用户列表,例如AllowUsers user1 user2。
修改完成后,保存文件并重启SSH服务:
sudo systemctl restart sshd
防火墙配置
CentOS系统默认使用firewalld作为防火墙管理工具,需要开放SSH服务的端口(默认为22)或自定义端口,执行以下命令:

sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
如果使用了自定义端口,需要添加对应的端口规则:
sudo firewall-cmd --permanent --add-port=端口号/tcp sudo firewall-cmd --reload
远程连接SSH客户端
在本地计算机上,可以使用SSH客户端连接到CentOS服务器,Windows系统可以使用PuTTY或Windows 10/11自带的SSH客户端,Linux和macOS系统则可以直接使用终端。
使用命令行连接
在终端中执行以下命令:
ssh username@服务器IP地址
如果修改了SSH端口,需要添加-p参数:
ssh -p 端口号 username@服务器IP地址
首次连接时,系统会提示保存服务器的主机密钥,输入yes即可,然后输入用户密码完成登录。
使用SSH密钥认证
密钥认证比密码认证更安全,可以防止暴力破解,以下是生成SSH密钥对并配置服务器的方法。
生成SSH密钥对
在本地计算机上,执行以下命令生成SSH密钥对:

ssh-keygen -t rsa -b 4096
按照提示设置密钥的保存路径和密码短语(可选),完成后,会在用户主目录的.ssh文件夹中生成id_rsa(私钥)和id_rsa.pub(公钥)。
将公钥上传到服务器
使用ssh-copy-id命令将公钥上传到服务器:
ssh-copy-id -p 端口号 username@服务器IP地址
输入用户密码后,公钥会被添加到服务器的~/.ssh/authorized_keys文件中,之后,即可使用私钥直接登录服务器,无需输入密码。
常用SSH命令
在SSH会话中,可以使用以下命令管理服务器:
exit:退出SSH会话。ls:列出目录内容。cd:切换目录。pwd:显示当前工作目录。top或htop:查看系统进程和资源使用情况。
相关FAQs
问题1:SSH连接失败,提示“Connection refused”怎么办?
解答:首先检查SSH服务是否正在运行,执行sudo systemctl status sshd,如果未运行,使用sudo systemctl start sshd启动服务,检查防火墙是否开放了SSH端口,执行sudo firewall-cmd --list-all查看开放的端口,如果端口未开放,使用sudo firewall-cmd --permanent --add-service=ssh添加规则并重载防火墙,检查SSH配置文件中的Port设置是否正确,确保客户端使用的端口与服务器配置一致。
问题2:如何禁止root用户直接登录SSH?
解答:编辑SSH配置文件/etc/ssh/sshd_config,找到PermitRootLogin参数,将其值设置为no,保存文件后,重启SSH服务:sudo systemctl restart sshd,这样,root用户将无法直接通过SSH登录,需要先使用普通用户登录,然后使用sudo提升权限,这样可以提高服务器的安全性,减少暴力破解的风险。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复