记openssh升级,telnet安装(环境CentOS 7.9。 晗旧版本的不同补充)

目录

一、前提工作

1. 先查看系统版本:

2. 准备相关安装包(rpm包)部分rpm包列表:

二、安装telnet(CentOS Linux release 7.9.2009环境)

1. 检查xinetd运行状态及telnet是否安装

2. 创建安装包存放目录 及 rz命令上传RMP包

3. 进入目录/tools/telnet执行安装:(按顺序执行,不然可能报错) 

 4. 启动telnet服务及查看服务端口

5. 设置root用户登录、关闭防火墙实现root用户登录到telnet 

6. 卸载telnet的步骤 (补充)

三、编译安装gcc

1. 查看是否安装gcc 及 创建安装包存放目录

2.  安装gcc (多数情况系统已安装)

 四、编译安装(升级openssl)

1. 检查以前安装的包

2. 查看相关依赖包是否安装

 五、编译安装(升级openssh,CentOS Linux release 7.9.2009环境)

1. 查看相关依赖包是否安装

2. 创建安装包存放目录 及 rz命令上传压缩包 

3. 解压 openssh-9.0p1.tar.gz 及 进入解压后的目录

4. 执行编译安装命令(安装过程建议telnet登录安装,但非必须) 

5. CentOS 7 之前的版本需要做以下处理

6. 修改配置文件开启root用户直接登录 

7. 开机自启,服务启动 

8. 重启openssh测试 

9. 升级后ssh ip跳转时的两个错误问题记录


一、前提工作

1. 先查看系统版本:

cat /proc/version
cat /etc/redhat-release
uname -a

提示:能连接网络使用yum -y install 进行rpm包的安装更方便,快捷。省去下载和寻找依赖包的烦恼。减少由于依赖包版本问题安装报错的情况。 

2. 准备相关安装包(rpm包)部分rpm包列表:

pam-devel-1.1.8-23.el7.x86_64.rpm

telnet包(telnet依赖xinetd):
telnet-0.17-47.el6.x86_64.rpm
telnet-server-0.17-64.el7.x86_64.rpm
xinetd-2.3.14-38.el6.x86_64.rp

二、安装telnet(CentOS Linux release 7.9.2009环境)

1. 检查xinetd运行状态及telnet是否安装

查看xinetd运行状态:service xinetd status
检查telnet是否安装:rpm -qa|grep telnet,rpm -qa|grep xinetd

2. 创建安装包存放目录 及 rz命令上传RMP包

创建安装包存放目录:mkdir -p /tools/telnet
rz命令上传RMP包到/tools/telnet目录:telnet的3个包

3. 进入目录/tools/telnet执行安装:(按顺序执行,不然可能报错) 

rpm -ivh xinetd-2.3.14-38.el6.x86_64.rpm
rpm -ivh telnet-0.17-47.el6.x86_64.rpm
rpm -ivh telnet-server-0.17-64.el7.x86_64.rpm

 4. 启动telnet服务及查看服务端口

systemctl start telnet.socket --重启服务器后失效
systemctl start xinetd --重启服务器后失效

查看telnet服务是否启动:netstat -antupl|grep 23

5. 设置root用户登录、关闭防火墙实现root用户登录到telnet 

1. 开放root用户的权限,编辑以下文件.注释掉这一行:auth  required  pam_securetty.so
vi /etc/pam.d/remote

2. 关闭防火墙
查看防火墙的状态:sudo systemctl status firewalld(Active: active (running)此字样为运行)
临时关闭防火墙:sudo systemctl stop firewalld
临时打开防火墙:sudo systemctl start firewalld

3. 使用SecureCRT,root用户telnet登录系统:(输入用户、密码登录)

6. 卸载telnet的步骤 (补充)

1. 关闭telnet服务
systemctl disable xinetd.service --针对永久生效
systemctl stop xinetd.service
systemctl disable telnet.socket --针对永久生效
systemctl stop telnet.socket

2. 执行卸载
rpm -e --nodeps telnet-0.17-47.el6.x86_64
rpm -e --nodeps telnet-server-0.17-64.el7.x86_64

三、编译安装gcc

1. 查看是否安装gcc 及 创建安装包存放目录

查看是否安装gcc:gcc -v
创建安装包存放目录:mkdir -p /tools/openSSH/gcc

2.  安装gcc (多数情况系统已安装)

进入目录/tools/openSSH/gcc执行安装:rpm -ivh *.rpm --nodeps --force
(扩展:--nodeps就是安装时不检查依赖关系,比如你这个rpm需要A,但是你没装A,这样你的包就装不上,用了--nodeps你就能装上了。--force就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用--force强制安装)

查看是否成功安装:gcc -v

 四、编译安装(升级openssl)

补充说明:
OpenSSL:一个C语言函数库,是对SSL协议的实现。
OpenSSH:是对SSH协议的实现。
从编译依赖上看,openssh依赖于openssl,没有openssl的话openssh就编译不过去,也运行不了。
所以,升级openssh不一定要升级升级openssl。只要openssl还能够支持你新版的openssh就行。

1. 检查以前安装的包

rpm -qa|grep openssl
rpm -qa|grep openssh
openssl version
openssl version -a

2. 查看相关依赖包是否安装

查看相关依赖包是否安装:rpm -qa|egrep "gcc|make|perl|zlib|zlib-devel|pam|pam-devel"
或者单个依次查看:rpm -qa|grep gcc

 略......后续openssl升级内容

 五、编译安装(升级openssh,CentOS Linux release 7.9.2009环境)

1. 查看相关依赖包是否安装

查看相关依赖包是否安装:rpm -qa|egrep "gcc|make|perl|zlib|zlib-devel|pam|pam-devel"
或者单个依次查看:rpm -qa|grep gcc

2. 创建安装包存放目录 及 rz命令上传压缩包 

创建安装包存放目录:mkdir -p /tools/openSSH
rz命令上传压缩包到/tools/openSSH目录:(文件名openssh-9.0p1.tar.gz)

3. 解压 openssh-9.0p1.tar.gz 及 进入解压后的目录

进入/tools/openSSH目录解压:tar -zxvf openssh-9.0p1.tar.gz
进入解压后的目录: cd /tools/openSSH/openssh-9.0p1(注意查看解压目录额用户及组的拥有者)

4. 执行编译安装命令(安装过程建议telnet登录安装,但非必须) 

执行编译安装命令:./configure  --sysconfdir=/etc/ssh --with-pam --with-zlib --with-ssl-dir=/usr/local/ssl(本人实测中ssl这个目录不存在也不受影响)

制作安装命令:make && make install(也可以分开执行。注意:执行结束如果出现make: [check-config] Error 1 (ignored)这个可以忽略跳过,执行echo $?检查执行结果)

说明:--prefix 安装路径
--sysconfdir 配置文件路径
--with-pam 认证模块 在/etc/pam.d/目录下管理,启用PAM,需要有一个控制文件,按照提示的路径找到redhat/sshd.pam,并复制到/etc/pam.d/sshd,在/etc/ssh/sshd_config中打开UsePAM yes                                                                                           
--with-md5-passwords 使用md5加密                                                                                                                                            
--without-hardening 加强
--with-ssl-dir 指向LibreSSL/OpenSSL库的安装目录的所在路径

检测执行是否正确:echo $?(代表上一个命令执行后的退出状态。如果返回值是0,就是执行成功;如果是返回值是0以外的值,就是失败)

查看版本:ssh -V

5. CentOS 7 之前的版本需要做以下处理

---------CentOS 7 之前的版本 begin------------------
注意--CentOS 7 之前的版本无法正常显示版本信息进行以下操作,操作时进入其目录先确认文件的存在及更新时间
mv /usr/bin/ssh /usr/bin/sshbak
cp /usr/local/bin/ssh /usr/bin/ssh(进入目录/usr/local/bin/查看文件生成时间应该是新安装的)

重要操作---使用(在此之前的只是将新版本的ssh安装、将显示修改,并未将新版本的操作引入service sshd ...的命令中,以下操作将会使之生效)
mv /usr/sbin/sshd /usr/sbin/sshdbak
cp /usr/local/sbin/sshd /usr/sbin/sshd(进入目录/usr/local/sbin/查看文件生成时间应该是新安装的)

--解决启动openssh时非法参数选项问题:ssh-keygen: illegal option -- A
因为默认低版本的ssh-keygen没有-A参数,解决方法:
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygenbak
cp /usr/local/bin/ssh-keygen /usr/bin/ssh-keygen(进入目录/usr/local/bin/查看文件生成时间应该是新安装的)
---------CentOS 7 之前的版本 end------------------

6. 修改配置文件开启root用户直接登录 

修改配置文件开启root用户直接登录:vi /etc/ssh/sshd_config
(取消#PermitRootLogin yes这一句的注释为PermitRootLogin yes)

7. 开机自启,服务启动 

1. 进入解压后的安装目录
cd /tools/openSSH/openssh-9.0p1(将安装下contrib/redhat/sshd.init复制到/etc/init.d/sshd中)

2. cp -a /tools/openSSH/openssh-9.0p1/contrib/redhat/sshd.init /etc/init.d/sshd(没有执行权限时可以赋权chmod +x /etc/init.d/sshd注意查看文件sshd的用户及组的拥有者)

3. 把原先的systemd管理的sshd文件移走或者删除,不移走的话影响我们重启sshd服务。
(注意--CentOS 7 之前版本的linux系统不存在 systemd管理服务,跳过此步)
cd /usr/lib/systemd/system/ --移除前可以先查看下是否存在
mv /usr/lib/systemd/system/sshd.service  /tools/sshd.servicebak

4.开机自启,加入系统服务
chkconfig sshd on
chkconfig --add sshd
systemctl enable sshd(CentOS 7 之前版本的linux系统不存在systemd,跳过此步)

8. 重启openssh测试 

--init.d方式
/etc/init.d/sshd restart --重启
/etc/init.d/sshd stop --停止
/etc/init.d/sshd start --启动
netstat -lntp --查看验证是否含有22端口的sshd服务

--systemd方式(注意--CentOS 7 之前版本的linux系统不存在 systemd管理服务,跳过此步)
systemctl stop sshd --停止
systemctl start sshd --启动
systemctl restart sshd --重启
systemctl status sshd或systemctl status sshd.service  --查看状态
netstat -lntp --查看验证是否含有22端口的sshd服务

或
service sshd restart

查看版本:ssh -V

9. 升级后ssh ip跳转时的两个错误问题记录 

(一). /etc/ssh/ssh_config line 44: Unsupported option "gssapiauthentication"
此错误root用户下注释掉本机/etc/ssh/ssh_config文件中GSSAPIAuthentication yes项

(二). Unable to negotiate with 192.168.0.193 port 22: no matching host key type found. Their offer: rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519
这个bug问题
root用户登录 
vi /etc/ssh/ssh_config或/etc/ssh/sshd_config(或两个都加)
在末尾加
HostkeyAlgorithms ssh-dss,ssh-rsa
KexAlgorithms +diffie-hellman-group1-sha1

---start如果不行还可加入以下方案:
在~/.ssh目录下添加config文件:vi config,录入以下code:
Host *
    HostKeyAlgorithms +ssh-dss
---end

(三). 编译升级openssh时报错:configure: error: PAM headers not found 
使用 yum -y install pam-devel解决的问题

(四). 升级openssh时执行./configure报错:configure: error: *** working libcrypto not found, check config.log
应该却少包,yum安装解决:yum install -y openssl-devel

重启ssh
service sshd restart

find / -iname "*openssh-server*" --根目录下查找文件,*为通配符
https://www.likecs.com/show-872807.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值