欧拉系统(openEuler 22.03) SSH配置及报错处理

本文讲述了在从CentOS迁移到欧拉系统时,如何检查并安装SSH服务,包括确认已有包、安装缺失的SSH包、修改sshd_config配置、重启服务以及错误排查的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于centos的停止更新,公司要求系统部署在欧拉上,用的人少,导致错误不好解决,今天使用finalshell连接服务器时出错,一想应该是ssh导致连不上,于是进行以下操作。

切记!不要直接安装ssh。先检查本机电脑上是否有ssh。

1.输入 rpm -qa | grep ssh
[root@localhost ~]$ rpm -qa | grep ssh
libssh-0.9.6-7.oe2203sp2.x86_64
openssh-8.8p1-20.oe2203sp2.x86_64
openssh-server-8.8p1-20.oe2203sp2.x86_64    //服务端
libssh2-1.10.0-5.oe2203sp2.x86_64
openssh-clients-8.8p1-20.oe2203sp2.x86_64   //客户端

       此处,.oe2203表明我下载的是欧拉22.03版本,前面是各个包的版本。如果有以上文件,证明服务器上有ssh。

2.如果没有以上文件,则证明无ssh,下载对应linux版本的包。此处为22.03
yum install openssh-server-8.8p1-20.oe2203sp2.x86_64    //服务端
yum install openssh-clients-8.8p1-20.oe2203sp2.x86_64   //客户端
3.若缺少文件,则输入以下指令:
# yum install openssh*
4.修改sshd_config文件(服务端)

        一般网上会让你修改ssh_config!但因为是服务端,所以修改sshd_config的配置。ssh_config是客户端的配置文件!笔者因为是新手所以在这里浪费了很多时间。

仅对以下部分作修改:

#输入指令:vim /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
PermitEmptyPasswords no
Port 22
以上配置前原本都是有#的,这是注释的意思,把前面的#去掉就好
5.重启ssh
#如果是第一次,则启动ssh服务
systemctl start sshd.service
#设置为开机自启
systemctl enable sshd.service
#如果之前已经启动过ssh服务,则重启ssh服务
systemctl restart sshd

6.错误排查(仅教方法,以本人所碰到的问题为例,授人以渔)

        本人遇到报错,提示让我输入systemctl status sshd -l查询问题,输入后发现一脸懵逼。出现以下场景:

         从这个图里面可以获取的信息:active:activating 证明ssh服务是在跑的,但是11718这个有异常,所以开始排查,输入以下指令:

sshd -t

 根据提示,说明sshd_config 第160行有报错。输入:

vim /etc/ssh/sshd_config

一直下拉到160行,对应为:PubkeyAcceptedKeyTypes,这是加密方式,一种可能是后面跟的加密方式有问题,在后面自行补充或删除。

另一种就是我这种输入的变量名不合法:我发现有人把Ciphers移动到了 上一行,导致Ciphers未生效,于是回车将其还原至原有位置。

重新输入 sshd -t,发现仍有报错,发现是ciphers有问题,报:bad ssh2 cipher spec

输入:ssh -q cipher 会告诉你现在有哪些使用的ciphers,将原有的ciphers行注释,另起一行输入查询结果。后续若报Mac的错误同理,输入ssh -q mac 后将原有Macs注释,另起一行输入查询结果后Esc退出wq保存。

#Cipher 原有的数据
Cipher 输入查询结果,以逗号隔开

### 如何在 openEuler 系统中配置和使用 SSH #### 检查并安装 SSH 软件包 为了确保系统已经安装了必要的SSH组件,在命令行执行以下指令来查看已有的SSH相关软件包: ```bash rpm -qa | grep ssh ``` 如果返回的结果包含了`openssh`, `openssh-server`, 和 `openssh-clients`,则说明环境准备就绪[^3]。 对于缺失的部分,可以通过yum或dnf进行安装。例如,通过dnf安装OpenSSH服务器端和服务客户端: ```bash sudo dnf install openssh-server openssh-clients ``` #### 启动并启用 SSH 服务 确认SSH服务处于活动状态,并设置其随系统启动自动运行: ```bash systemctl start sshd.service systemctl enable sshd.service ``` 验证SSH守护进程的状态以确保一切正常工作: ```bash systemctl status sshd.service ``` #### 配置防火墙允许 SSH 连接 为了让外部设备能够访问到这台机器上的SSH服务,默认情况下可能需要调整防火墙规则。假设正在使用的firewalld作为防火墙管理器,则可以添加一条永久性的入站规则用于开放默认的22号TCP端口给SSH通信: ```bash firewall-cmd --zone=public --add-service=ssh --permanent firewall-cmd --reload ``` #### 测试本地 SSH 连接 尝试从同一台计算机内部发起一次SSH会话请求至localhost,以此检验基本功能是否可用: ```bash ssh localhost ``` 此时应该能成功登录进入一个新的shell界面而无需再次提供密码(首次连接时除外),证明本地SSH配置正确无误[^1]。 #### 实现两台 Linux 主机间免密登录 当涉及到多台Linux主机之间的自动化交互任务时,建立基于公钥认证机制下的无密码身份验证变得尤为重要。具体做法如下所示: - 在源节点生成一对新的RSA密钥对而不设任何passphrase保护; ```bash ssh-keygen -t rsa -b 4096 -N "" -f ~/.ssh/id_rsa ``` - 将刚刚创建好的私钥对应的公共部分复制粘贴追加进目标节点用户的授权文件里; ```bash cat ~/.ssh/id_rsa.pub | ssh user@target 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys' ``` 完成上述步骤之后,就可以实现在不输入密码的情况下跨不同openEuler实例间的无缝切换与协作了[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值