实际需求:

因安全漏洞问题,openssh需要升级,
但是Centos6系统仓库里没有最新的rpm包。所以只能手动编译安装openssh最新版本
Centos7系统的就没必要了,仓库自带的版本已经满足要求。目前最新应该是7.4p1.当然如果要编译和6没啥区别。
注意一点就是:7的/etc/rc.d/rc.local 默认无执行权限 ,需要 chmod +x /etc/rc.d/rc.local 然后 /etc/init.d/sshd_7.8 start 写在这里。

参考资料:

https://blog.csdn.net/lqy461929569/article/details/76148598
https://www.xj123.info/7111.html
官方安装指导书:
http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssh.html

注意事项:

1、需要开启telnet以防ssh服务出问题。
2、重启后ssh服务要能启动
3、防火墙端口注意放行

留好退路

一、升级之前最好先把telnet开起来,防止意外导致ssh无法连接

1、yum install telnet-server 会自己安装xinetd

2、chkconfig --list

3、编辑 /etc/xinetd.d/telnet

#sed -r 's/disable([[:space:]])=([[:space:]])no/disable\1=\2yes/g' /etc/xinetd.d/telnet

sed -i '/disable/s/yes/no/g' telnet

让telnet托管给xinetd

4、此时,即可用非root用户进行登录。若要使用root用户登录,一般有以下两种方法(二选一):

(1)mv /etc/securetty /etc/securetty.bak

    PS:网上有说将你的登录终端信息加入到此文件下,通过你的/var/log/secure日志,添加要放行的终端,但是不靠谱,一直在变的,强烈不建议使用。

(2)修改/etc/pam.d/login这个文件,注释下面这一行,
#auth xxxxxxxxx pam_securetty.so 注释这行

    PS:亲测,这个方法不好使,没效果。

注意:ssh测试可以登录后,将上面的2个文件再改回去。

5、验证telnet可以正常登录

准备战斗

一、卸载当前yum安装的openssh相关软件包,避免干扰。

卸载前备份下/etc/init.d/sshd文件,用于自启动。当然自己也可以编辑。编译会自己生成。

rpm -e --nodeps `rpm -qa |grep openssh`openssh一搬会默认安装三个包openssh
openssh-clients
openssh-serverrpm -qa openssh* # 检查下是否卸载完了ss -ntl |grep 22 

二、安装相关依赖包,开始安装。

1)openssh需要依赖openssl。

查看解压的tar包中的INSTALL文件。里边有依赖的包版本信息。
zlib
openssl

cd /tmp
wget https://cloudflare.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.8p1.tar.gz
tar xf openssh-7.8p1.tar.gz
cd openssh-7.8p1

2)编译前查看相关文件,虽然英文不太好,但是很重要。

3)就编译安装而言,有三种方式。
1、默认安装方式
2、指定安装目录
3、指定

cat INSTALL

对比下rpm安装后的目录结构。


1、默认安装
./configure
make
make install
说明:
This will install the OpenSSH binaries in /usr/local/bin, configuration file in /usr/local/etc, the server in /usr/local/sbin, etc.

2、指定安装目录

./configure --prefix=/opt
make
make install

说明:
To specify a different installation prefix, use the --prefix option to configure:
Will install OpenSSH in /opt/{bin,etc,lib,sbin}.

3、指定各个安装目录

./configure --prefix=/opt --sysconfdir=/etc/ssh
make
make install

说明:
You can also override specific paths, for example:
This will install the binaries in /opt/{bin,lib,sbin}, but will place the configuration files in /etc/ssh.

PS:就实际个人体验而言,

第一种和第三种:看着方便,缺点可能就是太分散
第二种:卸载版本方便。删除安装目录即可,绿色安装。缺点需要自己添加一些环境变量,这个我们可以通过stow工具缓解这个缺点。

打扫战场

一、安装后相关设置。

1)指定环境变量

不是默认安装位置,需要做bin文件的PATH变量指定。

cat >/etc/profile.d/openssh.sh <<-"EOF"
#!/bin/bash
openssh_path=/usr/local/app/openssh
PATH="$openssh_path/bin:$openssh_path/sbin:$PATH"
export PATH
EOF

2)服务自启动

sshd启动主要是配置文件。

解压编译的目录下是有自启动脚本的。


但是,这个是没有指定chkconfig参数,不能被chkconfig管理自启动。
需要手动添加。
或者去sshd.init文件中将chkconfig这段指定copy到opensshd.init文件中。

cp -a openssd.init /etc/init.d/sshd_7.8
chkconfig --add sshd_7.8
chkconfig --list sshd_7.8 默认是开启2,3,4,5级别。

3)添加帮助文档路径。

cat  >> /etc/man.config <<eof
#start custom
MANPATH_MAP     /usr/local/app/openssh/bin                 /usr/local/app/openssh/share/man
MANPATH_MAP     /usr/local/app/openssh/sbin                 /usr/local/app/openssh/share/man
#end custom
eof

4) 修改配置文件、

vim /usr/local/app/openssh/etc/sshd_configAddressFamily inet #只监听ipv4地址,不监听ipv6PermitRootLogin yes # 允许root用户登录。当然最好不要允许root登录,新的配置文件,优化的已经不错了。

5)重启服务,测试启动脚本的有效性。重启电脑,测试重启后,服务的有效性

service sshd_7.8 restart

6)关闭xinetd服务,删除防火墙规则。还原修改的文件。

service xinetd stop
chkconfig xinetd off
mv /etc/securetty.bak /etc/securetty

转载于:https://blog.51cto.com/lajifeiwomoshu/2163927

openssh-7.8p1编译安装相关推荐

  1. blfs(systemd版本)学习笔记-编译安装openssh软件包

    openssh项目地址:http://www.linuxfromscratch.org/blfs/view/stable/postlfs/openssh.html 1.下载openssh包和补丁并校验 ...

  2. openssh编译 linux,openssh 的编译安装

    为了提升ssh的安全性,更新openssh也是很重要的. 下面开始编译安装openssh. openssh的官网:可以在这里下载最新的openssh 来安装http://www.openssh.com ...

  3. Centos7 编译安装 Nginx、MariaDB、PHP

    前言 本文主要大致介绍CentOS 7下编译安装Nginx.MariaDB.PHP.面向有Linux基础且爱好钻研的朋友.技艺不精,疏漏再所难免,还望指正. 环境简介: 系统: CentOS 7,最小 ...

  4. 在Centos 5.2下编译安装LAMP

    首先使用Virtualbox安装一台CentOS 5.2的虚拟机,网络连接采用 Host-only Adapter,这样主客机之间可以互相访问,但是客机不能够上广域网. 0.系统初步配置 源文件位置  ...

  5. linux安装openssh 密码错误,Linux安装openssh的后门补丁

    相对于Windows操作系统,Linux操作系统的密码较难获取.而很多Linux服务器都配置了Openssh服务,在获取root权限的情况下,可以通过修改或者更新OpenSSH代码等方法,截取并保存其 ...

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

    目录 一.前提工作 1. 先查看系统版本: 2. 准备相关安装包(rpm包)部分rpm包列表: 二.安装telnet(CentOS Linux release 7.9.2009环境) 1. 检查xin ...

  7. openssh arm linux 编译,移植openssh到arm linux

    一.在移植之前需要准备做一些前期准备: 1.移植zlib库 1.1获取zlib源码 1.2解压 tar xvf zlib-1.2.11.tar.xz 1.3交叉编译 1.3.1 指定交叉编译器 exp ...

  8. httpd的编译安装

    httpd的编译安装 文章目录 httpd的编译安装 1. httpd需要用到的安装包 2. 安装顺序:apr→apr-util→httpd 设置阿帕奇服务开机自启动 3. 如何配置虚拟主机 3.1 ...

  9. dropbear 编译安装和简单使用

    dropbear 编译安装和简单使用 dropbear官方站点:https://matt.ucc.asn.au/dropbear/dropbear.html ssh协议的另一个实现:dropbear ...

最新文章

  1. ES6简单总结(搭配简单的讲解和小案例)
  2. 语言模型微调领域有哪些最新进展?一文详解最新趋势
  3. 量子纠缠在量子计算机中的作用,量子纠缠
  4. 加大weblogic在Linux内存,在linux运行weblogic出现运行内存不足错误,求鞭挞....
  5. python 优先队列_python中使用优先队列
  6. Java开发环境!java基础知识点总结
  7. mysql提供了表示日期和时间的数据类型_MySQL数据类型 - 日期和时间类型(1)
  8. yolo-v5连接手机摄像头实时检测的步骤
  9. java swing 圆形图标_java swing 圆形按钮
  10. 关于组长、队长和团长
  11. 我的世界服务器皮肤文件在哪里,我的世界皮肤展开文件,皮肤站皮肤保存在哪个文件夹...
  12. java 订单模块实现
  13. ​万邦医药在创业板过会:上半年收入约1亿元,陶春蕾母子为实控人​
  14. 对HTML 标签语义化的理解,常见的语义化标签有哪些?
  15. C语言-返回数组并输出其值
  16. java简单雷电游戏代码_[代码全屏查看]-Java 雷电游戏(完成)
  17. 管理后台布局-左菜单-右侧内容宽度控制(使用ant design vue)
  18. 初代 iPhone:那道不清说不尽的故事
  19. wmiprvse.exe 进程占CPU过高 问题解决
  20. 计算机设备中运行速度最慢,解决办法:笔记本电脑开机缓慢且运行速度非常快,我该怎么办?计算机启动速度慢的原因和解决方法...

热门文章

  1. 业务自传中级职称 计算机,中级职称业务自传范文.doc
  2. 飞机大战——有图片,有声音
  3. java 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
  4. spring版本引起的问题
  5. Linux服务器下载百度网盘文件
  6. FreePBX 12 SIP协议30分钟自动挂断问题处理
  7. 2022年注册会计师考试财务成本管理模拟题及答案
  8. 打印出所有“水仙花数”
  9. VIM编辑文件以及保存
  10. IIS配置URL重写