linux安装SSH

linux安装SSH

源码包链接

zlib:https://www.zlib.net/zlib_1.3.1.tar.gz

openssl:https://www.openssl.org/source/openssl-3.3.0.tar.gz

openssh:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz

[root@localhost ~]# rpm -qa | grep gcc(检查gcc是否安装)
[root@localhost ~]# yum install gcc(如果没有gcc,安装gcc,如果有,此步骤跳过)[root@localhost ~]# rpm -qa|grep pam(检查pam是否安装)
[root@localhost ~]# yum install pam (如果没有pam,安装pam,如果有,此步骤跳过)[root@localhost ~]# rpm -qa|grep pam-devel(检查pam-devel是否安装)
[root@localhost ~]# yum install pam-devel (如果没有pam-devel,安装pam-devel,如果有,此步骤跳过)
注意:pam-devel包必须与系统的pam包版本一致[root@localhost ~]# rpm -qa|grep zlib(检查zlib是否安装)
[root@localhost ~]# yum install zlib(如果没有zlib,安装zlib,如果有,此步骤跳过)[root@localhost ~]# rpm -qa|grep zlib-devel(检查zlib-devel是否安装)
[root@localhost ~]# yum install zlib-devel(如果没有zlib-devel,安装zlib-devel,如果有,此步骤跳过)
编译安装zlib
[root@localhost ~]#  cd zlib-1.3.1
[root@localhost ~]#  ./configure --prefix=/usr/local/zlib
[root@localhost ~]#  make && make install
升级OpenSSL
查看当前版本
[root@localhost ~]#  ssh -V
备份、卸载原有OpenSSL
查找openssl 相关目录,然后备份
```java
[root@localhost etc]# whereis opensslopenssl: /usr/bin/openssl /usr/lib64/openssl /usr/share/man/man1/openssl.1ssl.gz[root@localhost etc]# mv /usr/bin/openssl  /usr/bin/openssl.old[root@localhost etc]# mv /usr/lib64/openssl /usr/lib64/openssl.old[root@localhost etc]# mv /usr/bin/openssl /usr/bin/openssl_old		#把/usr/bin/openssl 这个可执行文件重命名备份[root@localhost etc]# mv /usr/include/openssl /usr/include/openssl_old	#把/usr/include/openssl这个目录重命名备份

#####  卸载 openssl (看个人需要)```java
[root@localhost etc]# yum remove openssl
安装openssl
[root@localhost ~]# tar -xzvf openssl-3.3.0.tar.gz
[root@localhost ~]# chown -R root.root /usr/local/openssl-3.3.0
[root@localhost ~]# cd openssl-3.3.0/
[root@localhost ~]# ./config --prefix=/usr/local/openssl shared zlib
或者(二选一)安装在/usr目录下,会覆盖旧版本数据
[root@localhost ~]# ./config --prefix=/usr
[root@localhost ~]# rpm -qa | grep openssl (查看当前安装的版本)
[root@localhost ~]# make && make install
[root@localhost ~]# echo '/usr/local/openssl/lib' >> /etc/ld.so.conf	        #修改系统配置,写入openssl库文件的搜索路径
[root@localhost ~]# ldconfig -v													#重新加载动态库
[root@localhost ~]# cd /usr/local/openssl/bin							#进入到安装目录
[root@localhost ~]# ./openssl version											#查看安装的版本
[root@localhost ~]# ln -s /usr/local/openssl/bin/openssl  /usr/bin/openssl			#建一个/usr/bin/openssl软链接,链接到我们新安装的
[root@localhost ~]# ln -s /usr/local/openssl/include/openssl  /usr/include/openssl	#建一个/usr/include/openssl软链接,链接到我们新安装的OpenSSL下的include的openssl目录
可以直接拷贝过去,看个人选择
[root@localhost ~]#  openssl version	#查看版本

选择了/usr 是因为系统最初始的openssl的目录就是/usr 这样可以省去的软连接、更新链接库的问题

error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

 [root@localhost ~]#  find / -name libssl.so.1.1
[root@localhost ~]#   ln -s /usr/local/openssl /lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1  #软连接或者拷贝

error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory

[root@localhost ~]#   ln -s /usr/local/openssl /lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

如果升级ssl后查看版本依旧是老版本,重新执行

[root@localhost ~]#  mv /usr/bin/openssl /usr/bin/openssl_old #把/usr/bin/openssl 这个可执行文件重命名备份
[root@localhost ~]#  mv /usr/include/openss /usr/include/openss_old #把/usr/include/openssl这个目录重命名备份
[root@localhost ~]#  ln -s /usr/local/openssl /bin/openssl /usr/bin/openssl #建一个/usr/bin/openssl软链接,链接到我们新安装的
[root@localhost ~]#  ln -s /usr/local/openssl /include/openssl /usr/include/openssl #建一个/usr/include/openssl软链接,链接到我们新安装的OpenSSL下的include的openssl目录
拷贝也可以
升级OpenSSH
[root@localhost ~]# rpm -qa | grep xinetd(检查xinetd是否安装)
[root@localhost ~]# yum install xinetd(如果没有,则安装xinetd,否则跳过此步骤)[root@localhost ~]# rpm -qa | grep telnet-server(检查telnet-server是否安装)
[root@localhost ~]# yum install telnet-server(如果没有,则安装telnet-server,否则跳过此步骤)[root@localhost ~]# rpm -qa | grep vsftpd(检查vsftpd是否安装)
[root@localhost ~]# yum install vsftpd(如果没有,则安装vsftpd,否则跳过此步骤)

安装telnet-server
方法一:

[root@localhost ~]# yum install -y xinetd
[root@localhost ~]# yum install -y telnet
[root@localhost ~]# yum install -y telnet-server[root@localhost ~]# vim /etc/securetty
在末尾添加:
pts/0
pts/1
[root@localhost ~]#  echo 'pts/0' >>/etc/securetty
[root@localhost ~]#  echo 'pts/1' >>/etc/securetty方法二:
yum -y install telnet* xinetd*
$ systemctl start telnet.socket
$ systemctl start  xinetd[root@localhost ~]#  systemctl restart telnet.socket
[root@localhost ~]#  systemctl enable xinetd 
[root@localhost ~]#  systemctl enable telnet.socket
[root@localhost ~]#  rpm -qa | grep telnet
[root@localhost ~]#  rpm -qa | grep xinetd
[root@localhost ~]# mv /etc/securetty /etc/securetty.bak 
[root@localhost ~]# vim /etc/xinetd.d/telnet 
disable  = no     #开启telnet服务功能,否则telnet启动后,23端口起不来
注意:将disable = yes 改为disable = no
#开启xinetd
[root@localhost ~]# service xinetd start
Starting xinetd:                                           [  OK  ]
#查看端口
[root@localhost ~]# netstat -antp|grep 23
tcp        0      0 :::23                       :::*                        LISTEN      6133/xinetd #设定开机自启
[root@localhost ~]# chkconfig xinetd on

临时关闭安全登录,否则无法进行远程telnet连接

有防火墙记得关闭防火墙,并关闭SELinux

[root@localhost ~]# firewall-cmd --state

关闭防火墙

[root@localhost ~]# systemctl stop firewalld.service

测试telnet远程登录,telnet登录成功才进行接下来的操作,防止sshd服务被搞坏了远程连不上服务器

[root@localhost ~]# telnet 127.X.X.X

安装依赖包

安装依赖

yum -y install gcc*

[root@localhost ~]#  yum  install  -y gcc-c++ zlib-devel  openssl-devel pam-devel
[root@localhost ~]#  yum install -y gcc gcc-c++ glibc make automake autoconf pam pam-devel zlib zlib-devel
备份

通过whereis ssh sshd找出bin文件、源文件,然后备份。

[root@localhost ~]#  mv /etc/ssh /etc/ssh.bak[root@localhost ~]#  mv /usr/bin/ssh /usr/bin/ssh.bak[root@localhost ~]#  mv /usr/sbin/sshd /usr/sbin/sshd.bak[root@localhost ~]#  mv /usr/bin/ssh-keygen  /usr/bin/ssh-keygen.bak[root@localhost ~]#  mv /etc/pam.d/sshd  /etc/pam.d/sshd.old[root@localhost ~]#  mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak

卸载旧版OpenSSH

[root@localhost ~]#  yum remove openssh

安装新版OpenSSH

[root@localhost ~]#  tar -xzvf openssh-9.7p1.tar.gz
[root@localhost ~]#  chown -R root.root /usr/local/openssh-9.7p1
[root@localhost ~]#  cd openssh-9.7p1
[root@localhost ~]#  ./configure --prefix=/usr/local/openssh  --sysconfdir=/etc/ssh  --with-pam   --with-zlib=/usr/local/zlib   --with-ssl-dir=/usr/local/openssl
[root@localhost ~]#  make && make install
[root@localhost ~]#  echo $?
为0正常
[root@localhost ~]#  chmod 600 /etc/ssh/*
复制新的配置文件到原来目录
[root@localhost ~]#  cp /usr/local/openssh/etc/sshd_config    /etc/ssh/sshd_config[root@localhost ~]#  cp /usr/local/openssh/sbin/sshd   /usr/sbin/sshd[root@localhost ~]#  cp /usr/local/openssh/bin/ssh   /usr/bin/ssh[root@localhost ~]#  cp /usr/local/openssh/bin/ssh-keygen   /usr/bin/ssh-keygen[root@localhost ~]#  cp -p contrib/redhat/sshd.init     /etc/init.d/sshd[root@localhost ~]#  cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
修改权限
[root@localhost ~]#  chmod +x /etc/init.d/sshd

[root@localhost ~]# vim /etc/ssh/sshd_config

sshd_config文件修改
[root@localhost ~]#  echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
[root@localhost ~]#  echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
[root@localhost ~]#  echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config

PermitRootLogin yes:允许root用户通过SSH登录到系统(重启sshd服务之后远程连接)
PubkeyAuthentication yes:启用公钥身份验证
PasswordAuthentication yes:启用密码身份验证

启动sshd

[root@localhost ~]# service sshd restart
添加到开机启动项
[root@localhost ~]# chkconfig --add sshd
[root@localhost ~]# chkconfig sshd on
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart sshd
[root@localhost ~]# systemctl status sshd


[root@localhost ~]#  ssh -V
  1. 停止telnet相关服务
[root@localhost ~]#  systemctl stop telnet.socket
[root@localhost ~]#  systemctl stop xinetd
  1. 卸载telnet
[root@localhost ~]#  rpm -e --nodeps `rpm -qa | grep telnet`
[root@localhost ~]#  rpm -e --nodeps `rpm -qa | grep xinetd`

3.验证是否验证完成

[root@localhost ~]#  rpm -qa | grep telnet
[root@localhost ~]#  rpm -qa | grep xinetd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/2714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI写作】未来科技趋势:揭秘DreamFusion的革新力量

首先,这篇文章是基于笔尖AI写作进行文章创作的,喜欢的宝子,也可以去体验下,解放双手,上班直接摸鱼~ 按照惯例,先介绍下这款笔尖AI写作,宝子也可以直接下滑跳过看正文~ 笔尖Ai写作:…

数据库之数据库恢复技术思维导图+大纲笔记

大纲笔记: 事务的基本概念 事务 定义 用户定义的一个数据库操作系列,这些操作要么全做,要么全不做,是一个不可分割的基本单位 语句 BEGIN TRANSACTION 开始 COMMIT 提交,提交事务的所有操作 ROLLBACK 回滚&#xff0c…

Centos之yum安装好玩的命令

1.会动的小火车 我在root下使用的 yum install sl.x86_64sl2.figlet yum install figlet.x86_64figlet 55553.cowsay会说话 yum install cowsay

防火墙详细讲解

目录 介绍 防火墙的特征 防火墙的组成 介绍 防火墙(firewall)是指一种计算机硬件和软件的结合,将内部网和公众访问网(如Internet)分开的方法,它实际上是一种隔离技术。防火墙主要由服务访问规则、验证工…

leetcode刷题笔记——使用双指针处理链表问题

面试的时候经常碰见诸如获取倒数第k个元素,获取中间位置的元素,判断链表是否存在环,判断环的长度等和长度与位置有关的问题。这些问题都可以通过灵活运用双指针来解决 如果存在环,如何判断环的长度呢?方法是&#xff…

python数字验证码自动识别

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在网络上,许多网站和应用程序使用验证码(Completely Automated Publ…

MYSQL 存储java.sql.Timestamp类型的数据时,mysql存储时间和java获取到的时间相差8小时

###JAVA JDBC驱动 com.mysql.cj.jdbc.DriverJDBC连接字符串 jdbc:mysql://127.0.0.1:3006/db?useUnicodetrue&characterEncodingUTF8&useLegacyDatetimeCodefalse&serverTimezoneUTCMySQL 时区 show global variables like “%time_zone%”; 问题分析 驱动…

汇编实现缓冲区溢出1

input: pushl %ebp # 保存帧指针 mov %esp, %ebp # 更新栈指针位置 pushl %ebx # 压入保护寄存器 subl $20, %esp # 通过减法运算在栈上分配 20 个字节的空间 leal -12(%ebp), %ebx # 计算缓冲区开始的位置,是 …

网络安全之SQL注入漏洞复现(中篇)(技术进阶)

目录 一,报错注入 二,布尔盲注 三,sleep延时盲注 四,DNSlogs 盲注 五,二次注入 六,堆叠注入 总结 一,报错注入 报错注入就是在错误信息中执行 sql 语句,利用网站的报错信息来带…

探索Linux系统:详尽指南教你查看系统信息

在Linux环境下工作时,了解系统的关键信息有助于我们更好地管理、诊断和优化系统性能。本文将详细介绍一系列实用命令,助你全面掌握Linux系统的硬件配置、软件版本、资源使用状况等重要细节。无论是日常运维还是故障排查,这些命令都是不可或缺的工具。让我们开始探索之旅吧!…

【奶奶看了都会】用 AI做猫咪剧情短片保姆级教程

大家这段时间在刷短视频的时候,是不是经常会刷到那种猫咪剧情短片,配合喵喵喵......的魔性背景音乐,让人看了非常上头。最近这类视频在抖音、视频号、小红书上非常火,今天就来教大家如何制作。 1.GPT4账号准备 我们用到的AI生图…

应用于智能装备制造,钡铼IOy系列模块展现其强大的灵活性和实用性

随着科技的飞速发展,智能制造已经成为工业4.0时代的核心驱动力。在此背景下,钡铼技术推出的IOy系列模块以其独特的设计、卓越的性能以及无可比拟的灵活性与实用性,在智能装备制造领域展现出了强大的技术优势和应用价值。 首先,钡…

HTTP与SOCKS-哪种协议更适合您的代理需求?

网络代理技术是我们日常使用网络时必不可少的一项技术,它可以为我们提供隐私保护和负载均衡的能力,从而保证我们的网络通信更加安全和顺畅。而其中最主流的两种协议就是HTTP和SOCKS。虽然它们都是用于网络代理的协议,但在实际应用中却存在着一…

python:根据旋转平移矩阵求取原始点云或者转换后点云

根据旋转平移矩阵求取原始点云或者转换后点云 原始点云进行旋转平移示例 1示例 2示例 3示例 4 根据转换后点云及转换矩阵求原始点云示例 1示例 2示例 3示例 4 原始点云进行旋转平移 转换前的点云可以表示为一个N行3列的矩阵,每一行代表一个点的坐标。我们定义一个旋…

Gitea:轻量级全功能DevSecOps平台的深度解析

Gitea:轻量级全功能DevSecOps平台的深度解析 在软件开发和版本控制领域,Gitea以其轻量级、开源和自托管的特点,逐渐受到越来越多个人开发者和小型团队的青睐。作为一个基于Go语言编写的Git服务软件,Gitea旨在提供一个易于安装、快…

儿童护眼落地灯哪个牌子好?值得买的五款大路灯分享

近年来,随着近视问题日益严重,消费者越来越倾向于选购能够优化照明环境、减轻眼部压力的护眼落地灯。然而,市场上的护眼落地灯品质良莠不齐,许多品牌为了追求低廉价格和扩大市场份额,不惜采取模仿甚至抄袭的方式&#…

NL2SQL技术方案系列(6):金融领域知识检索,NL2SQL技术方案以及行业案例实战讲解4

NL2SQL技术方案系列(6):金融领域NL2SQL技术方案以及行业案例实战讲解4 NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL] NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七…

MySQL主从结构搭建

说明:本文介绍如何搭建MySQL主从结构; 原理 主从复制原理如下: (1)master数据写入,更新binlog; (2)master创建一个dump线程向slave推送binlog; &#xff…

TIMEDAY·腾讯智慧出行技术开放日:发布汽车行业大模型、升级智能汽车云

4月24日,北京车展前夕,在“2024 TIME DAY腾讯智慧出行技术开放日”上,腾讯发布了汽车行业大模型“全域智能”方案,覆盖汽车研发、生产、营销、服务、企业协同等五大核心场景。与此同时,腾讯发布了在智能汽车云、智能座…

C++中的程序流程结构

一、选择结构 1.1 if语句 作用&#xff1a;执行满足条件的语句 if语句的三种形式 单行格式if语句多行格式if语句多条件的if语句 #include <iostream> using namespace std;int main(){//选择结构 单行if语句//用户输入分数&#xff0c;如果分数>600,视为考上一本大…