CentOS OpenSSH 安装与配置指南
简介
OpenSSH(Open Secure Shell)是一组用于安全网络通信和远程登录的工具,在CentOS系统中,OpenSSH服务由opensshserver
软件包提供,而客户端功能则包含在opensshclients
软件包中,本文将详细介绍如何在CentOS系统上安装、配置和管理OpenSSH服务。
安装OpenSSH服务
1、检查是否已安装:
使用以下命令检查是否已经安装了opensshserver
服务:
```bash
rpm qa | grep E "openssh"
```
如果输出结果包含opensshserver
,则表示该服务已经安装。
2、安装OpenSSH服务:
如果未安装,可以使用以下命令进行安装:
```bash
yum install opensshserver y
```
安装完成后,会在/etc/init.d
目录下增加一个名为sshd
的服务。
配置OpenSSH服务
1、主配置文件:
OpenSSH的主配置文件位于/etc/ssh/sshd_config
,常见的配置选项包括:
Port
:设置SSH服务的端口号,默认为22。
Protocol
:启用SSH版本2协议。
ListenAddress
:设置服务监听的地址。
DenyUsers
:拒绝访问的用户列表。
AllowUsers
:允许访问的用户列表。
PermitRootLogin
:禁止root用户登录。
PasswordAuthentication
:启用口令认证方式。
2、配置示例:
编辑/etc/ssh/sshd_config
文件,根据需要修改或添加配置选项。
```bash
Port 22
Protocol 2
PermitRootLogin no
PasswordAuthentication yes
```
保存并关闭文件后,重启sshd
服务以应用更改:
```bash
service sshd restart
```
3、防火墙设置:
如果无法连接,可能是防火墙未开放相应端口,使用以下命令开放22端口:
```bash
firewallcmd zone=public addport=22/tcp permanent
firewallcmd reload
```
使用Xshell连接CentOS服务器
1、打开Xshell:
选择“新建”,输入主机的IP地址,选择SSH协议,然后点击“连接”。
2、用户身份验证:
在“用户身份验证”中填入用户名和密码,完成连接。
升级OpenSSH版本
1、环境准备:
确保系统已安装编译工具和依赖包:
```bash
yum groupinstall y "Development Tools"
yum install y openssl openssldevel zlib zlibdevel pam pamdevel
```
2、下载源码:
下载最新版本的OpenSSH源码包:
```bash
wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh9.7p1.tar.gz
```
3、解压和编译:
解压源码包并进入目录:
```bash
tar zxvf openssh9.7p1.tar.gz
cd openssh9.7p1
```
配置、编译并安装:
```bash
./configure prefix=/usr/local/openssh sysconfdir=/etc/ssh withmd5passwords withzlib withpam
make
make install
```
4、更新启动脚本和配置文件:
复制新的启动脚本和配置文件:
```bash
cp ./contrib/redhat/sshd.init /etc/init.d/sshd
cp ./contrib/redhat/sshd.pam /etc/pam.d/sshd
chmod +x /etc/init.d/sshd
chkconfig sshd on
```
重新启动sshd
服务:
```bash
service sshd restart
```
常见问题解答(FAQs)
1、Q: 如何通过RSA密钥登录远程服务器?
A: 首先在服务器上生成RSA密钥对:
```bash
sshkeygen
```
然后将公钥文件追加到~/.ssh/authorized_keys
文件中:
```bash
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
```
将私钥文件下载到客户端,并在Xshell中使用Public Key验证方式连接。
2、Q: 如何查看当前OpenSSH版本?
A: 使用以下命令查看当前OpenSSH版本:
```bash
ssh V
```