编译安装升级openssh最新版

  • A+
所属分类:linux技术
摘要

系统版本:Centos7 mini在使用systemctl start sshd 命令启动sshd服务会卡住,过一会显示启动超时,查询状态发现sshd服务启动失败。
但是,通过源码包自带的sshd.init 脚本文件可以正常的管理sshd服务的启停。


安装环境

系统版本:Centos7 mini

安装步骤

  1. 依赖包安装
  2. 卸载原有openssh
  3. 下载openssh编译包
  4. 编译安装openssh
  5. 修改配置
  6. 设置openssh自启

安装操作

# 安装依赖包,因此系统最小化安装所以我就一股脑的将开发套件都给装上了 yum groupinstall "Development Tools"  -y #如果不想一股脑把整个套件安装上的可以使用下面的命令 #yum install openssl-devel  zlib-devel perl gcc pam-devel # 备份原来ssh的配置,备用 cp -r /etc/sysconfig/sshd /etc/sysconfig/sshd.bak cp -r /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak cp -r /usr/lib/systemd/system/sshd.socket /usr/lib/systemd/system/sshd.socket.bak cp -r /usr/lib/systemd/system/sshd@.service /usr/lib/systemd/system/sshd@.service.bak cp -r /usr/lib/systemd/system/sshd-keygen.service /usr/lib/systemd/system/sshd-keygen.service.bak cp -r /etc/ssh /etc/ssh.bak # 卸载系统预装的openssh,先查询,然后卸载 rpm -qa | grep openssl openssh-7.4p1-21.el7.x86_64 openssh-clients-7.4p1-21.el7.x86_64 openssh-server-7.4p1-21.el7.x86_64 yum remove openssh-clients openssh-server openssh # 下载openssh安装包 wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz # 删除原有配置文件,上面已经备份了所以放心上,建议采用mv命令 mv /etc/ssh  /tmp #  解压压缩包 tar xvf openssh-8.6p1.tar.gz # 编译安装 ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh    --with-zlib   --with-md5-passwords   --with-pam   --with-ssl-engine make && make install # 创建软链接 ln -s /usr/local/openssh/sbin/sshd /sbin/sshd ln -s /usr/local/openssh/bin/ssh /usr/bin/ssh ln -s /usr/local/openssh/bin/ssh-add /usr/bin/ssh-add ln -s /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen ln -s /usr/local/openssh/bin/ssh-keyscan /usr/bin/ssh-keyscan # 恢复刚刚备份的配置文件 mv /etc/sysconfig/sshd.bak /etc/sysconfig/sshd mv /usr/lib/systemd/system/sshd.service.bak /usr/lib/systemd/system/sshd.service mv /usr/lib/systemd/system/sshd.socket.bak /usr/lib/systemd/system/sshd.socket mv /usr/lib/systemd/system/sshd@.service.bak /usr/lib/systemd/system/sshd@.service mv /usr/lib/systemd/system/sshd-keygen.service.bak /usr/lib/systemd/system/sshd-keygen.service # 检查现在的ssh版本 ssh -V # 修改默认配置,允许root登录 vi /etc/ssh/sshd_config #将 #PermitRootLogin prohibit-password 修改为 PermitRootLogin yes # 将sshd服务设为开机启动 chkconfig sshd on  

安装问题

问题描述1

在使用systemctl start sshd 命令启动sshd服务会卡住,过一会显示启动超时,查询状态发现sshd服务启动失败。
但是,通过源码包自带的sshd.init 脚本文件可以正常的管理sshd服务的启停。

解决方法1

# 将源码安装包中的opensshd.init文件复制到/etc/init.d/目录下 cp opensshd.init /etc/init.d/sshd.init # 授予可执行权限 chmod +x  /etc/init.d/sshd.init # 然后修改sshd.service管理配置文件 vim /usr/lib/systemd/system/sshd.service #如果里面有内容的那将内容清空,没有的直接附上下面的配置即可 [Unit] Documentation=man:systemd-sysv-generator(8) SourcePath=/etc/rc.d/init.d/sshd.init Description=SYSV: OpenSSH server daemon  [Service] Type=forking Restart=no TimeoutSec=5min IgnoreSIGPIPE=no KillMode=process GuessMainPID=no RemainAfterExit=no PIDFile=/var/run/sshd.pid ExecStart=/etc/rc.d/init.d/sshd.init start ExecStop=/etc/rc.d/init.d/sshd.init stop ExecReload=/etc/rc.d/init.d/sshd.init reload #保存退出,然后运行下面的命令 systemctl daemon-reload systemctl restart sshd 

参考链接

问题描述2

在升级openssh编译报错“configure: error: *** working libcrypto not found, check config.log”

解决方法2

# 出现上面的报错,是因为缺少openssl-devel包或者libcrypto相关库不正确,我们直接安装openssl-devel即可解决问题 yum install -y openssl-devel 

参考链接

openssh安装包下载地址