CentOS 7 安装和配置 OpenSSH
一、
OpenSSH 是一个实现 SSH(Secure Shell)协议的开源项目,它提供了加密的网络连接工具,用于远程登录和其他网络服务,在 CentOS 7 上安装和配置 OpenSSH 可以确保安全的远程访问和管理服务器,本文将详细介绍如何在 CentOS 7 上安装、配置和优化 OpenSSH。
二、安装前准备
1. 检查系统中是否已安装 OpenSSH
rpm qa | grep openssh
如果返回类似opensshserverx.x.xx.el7.x86_64
的结果,说明系统已经安装了 OpenSSH,如果没有安装,继续下一步。
2. 更新系统软件包
sudo yum update y
三、安装 OpenSSH 服务器
1. 安装 OpenSSH 服务器
sudo yum install y opensshserver
2. 启动并启用 OpenSSH 服务
sudo systemctl start sshd sudo systemctl enable sshd
四、配置 OpenSSH
1. 备份现有配置文件
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
2. 编辑配置文件/etc/ssh/SSHD_config
sudo vi /etc/ssh/sshd_config
根据需求修改以下参数:
Port: 设置 SSH 监听端口,默认为22。Port 2222
。
ListenAddress: 绑定地址,默认为0.0.0.0,表示监听所有网络接口。
PermitRootLogin: 是否允许 root 用户登录,可选值为yes
,no
,prohibitpassword
,forcedcommandsonly
,建议设置为no
以提高安全性。
PasswordAuthentication: 是否允许密码认证,可选值为yes
或no
,建议设置为no
以强制使用密钥认证。
PubkeyAuthentication: 是否启用公钥认证,建议设置为yes
。
AuthorizedKeysFile: 指定存储公钥的文件路径,默认为/home/username/.ssh/authorized_keys
。
示例配置:
Port 2222 ListenAddress 0.0.0.0 PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes AuthorizedKeysFile /home/username/.ssh/authorized_keys
3. 重启 OpenSSH 服务使配置生效
sudo systemctl restart sshd
五、优化 OpenSSH 安全性
1. 修改 SSH 端口号
为了提高安全性,可以将默认的 SSH 端口22改为一个不常用的端口号,编辑/etc/ssh/sshd_config
文件,找到并修改Port
参数。
2. 禁用 root 用户登录
编辑/etc/ssh/sshd_config
文件,找到并修改PermitRootLogin
参数:
PermitRootLogin no
3. 禁止密码认证,强制使用密钥认证
编辑/etc/ssh/sshd_config
文件,找到并修改以下参数:
PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
4. 配置防火墙放行新端口
如果更改了 SSH 端口号,需要配置防火墙放行新的端口号:
sudo firewallcmd permanent addport=2222/tcp sudo firewallcmd reload
5. 设置防火墙允许特定IP或子网访问
sudo firewallcmd permanent addrichrule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="2222" accept' sudo firewallcmd reload
六、测试 OpenSSH 配置
1. 使用本地终端测试连接
ssh p 2222 localhost
2. 使用远程机器测试连接
在远程机器上打开终端,输入以下命令进行连接:
ssh p 2222 user@your_server_ip
注意替换your_server_ip
为服务器的实际IP地址。
七、常见问题及解决方案
问题1:无法连接到服务器
解答:首先检查服务器上的 SSH 服务状态是否正常:
sudo systemctl status sshd
如果服务未运行,尝试重新启动:
sudo systemctl restart sshd
然后检查防火墙设置是否正确放行了端口。
问题2:密码认证失败
解答:确认/etc/ssh/sshd_config
文件中的PasswordAuthentication
参数设置为yes
,并且用户有正确的密码,建议查看服务器日志/var/log/secure
获取更多信息。
通过上述步骤,可以在 CentOS 7 上成功安装和配置 OpenSSH,确保安全的远程访问和管理服务器,优化 SSH 配置和定期更新是保持系统安全的重要措施。