centos7 ssh启动命令(centos7.x下ssh升级到最新版本)

有云主机的朋友,应该都有被挖矿木马骚扰的经历, 不堪其扰,虽然也封了IP,限制了端口,但是仍然免不了中招,一朋友说需要升级下openssh,虽然也知道,但是总觉得麻烦,最后还是发狠来升级一把,下面记录下升级过程和一些注意事项,现在小编就来说说关于centos7 ssh启动命令?下面内容希望能帮助到你,我们来一起看看吧!

centos7 ssh启动命令(centos7.x下ssh升级到最新版本)

centos7 ssh启动命令

一 前言

有云主机的朋友,应该都有被挖矿木马骚扰的经历, 不堪其扰,虽然也封了IP,限制了端口,但是仍然免不了中招,一朋友说需要升级下openssh,虽然也知道,但是总觉得麻烦,最后还是发狠来升级一把,下面记录下升级过程和一些注意事项。

本文是在CentOS Linux release 7.7.1908 (Core)和CentOS Linux release 7.5.1804 (Core) 均验证过。

二 升级准备2.1 简单升级ssh

升级前,可以先通过yum做个简单的升级:

yum update openssh -y

2.2 安装telnet

防止有问题的时候,无法登录到主机上去的问题,多一个保证。

yum install xinetd telnet-server -y vi /etc/xinetd.d/telnet # 黏贴到下一段内容: service telnet { disable = yes flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure = USERID } # 文件允许你规定“root”用户可以从哪个tty设备登录、 # 它的格式:列出来的tty设备都是允许登录的,注释掉或是在这个文件中不存在的都是不允许root登录的 vim /etc/securetty #尾部添加: xvc0 pts/0 pts/1 pts/2 pts/3 # 设置开机启动 systemctl enable xinetd systemctl enable telnet.socket #启动 systemctl start telnet.socket systemctl start xinetd

这时候可以通过netstat -antp|grep 23 查看端口是否监听,一般都是正常监听的,如果远程无法登录,可以查看防火墙是否禁止了,如果是云主机,需要在云主机的控制台上查看,是否开启了23端口的访问。

# 查看防火墙状态 systemctl status firewalld # 查看是否开启端口 firewall-cmd --query-port=23/tcp #添加23端口 firewall-cmd --zone=public --add-port=23/tcp --permanent #再次查询 firewall-cmd --query-port=23/tcp # 重新加载规则 firewall-cmd --reload

2.3 安装编译工具

# 编译工具安装 yum install -y gcc gcc-c glibc make autoconf openssl openssl-devel pcre-devel pam-devel # 安装pam和zlib yum install -y pam* zlib*

三 升级openssl和openssh3.1 编译安装openssl和openssh

openssh依赖openssl的库,另外要注意版本匹配问题,如果版本不匹配,会安装失败,请严格按照我下载的版本来,目前测试是ok的:

# 2021年12月19日最新版本 wget --no-check-certificate https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.8p1.tar.gz #配套的openssl,这个版本是适配的,再高的不确定。 wget --no-check-certificate https://ftp.openssl.org/source/old/1.1.1/openssl-1.1.1l.tar.gz # 安装openssl--------------------------------------- tar xfz openssl-1.1.1l.tar.gz cd ./openssl-1.1.1l/ ./config shared --prefix=/usr/local/ssl && make && make install #备份老的openssl mv /usr/bin/openssl /usr/bin/openssl_bak mv /usr/include/openssl /usr/include/openssl_bak # 删除 rm /usr/bin/openssl rm /usr/include/openssl # 建立我们编译好的软连接 ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl ln -s /usr/local/ssl/include/openssl /usr/include/openssl #确认 版本是否是对的 [root@iZbp10p2g1civrw4ggigvfZ openssl-1.1.1l]# /usr/bin/openssl version OpenSSL 1.1.1l 24 Aug 2021 # 添加动态链接库,并生效 echo "/usr/local/ssl/lib" >> /etc/ld.so.conf ldconfig # 安装openssh------------------------------------- tar xfz openssh-8.8p1.tar.gz cd openssh-8.8p1 # 删除老的配置 rm -rf /etc/ssh/* ./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/ssl/include \ --with-ssl-dir=/usr/local/ssl --without-openssl-header-check --with-zlib --with-md5-passwords --with-pam && make && make install #更改配置/etc/ssh/sshd_config 设置准许远程root登录,要保证 [root@linux-node3 ~]# grep "^PermitRootLogin" /etc/ssh/sshd_config PermitRootLogin yes [root@linux-node3 ~]# grep "UseDNS" /etc/ssh/sshd_config UseDNS no # 拷贝 [root@linux-node3 /data/tools/openssh-8.0p1]# cp -a contrib/redhat/sshd.init /etc/init.d/sshd [root@linux-node3 /data/tools/openssh-8.0p1]# cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam [root@linux-node3 /data/tools/openssh-8.0p1]# chmod x /etc/init.d/sshd # 移动走或删除,然后重新生成 不然不能通过systemctl启动 [root@localhost openssh-8.6p1]# mv /usr/lib/systemd/system/sshd.service ./ # 添加开机启动 [root@linux-node3 /data/tools/openssh-8.0p1]# chkconfig --add sshd [root@linux-node3 /data/tools/openssh-8.0p1]# systemctl enable sshd # 开启 [root@linux-node3 /data/tools/openssh-8.0p1]# systemctl start sshd

四 可能遇到的坑

openssh升级后,私钥会变化的,需要重新做互信关系。

4.1 systemctl 无法启动升级后的sshd

检查如下:

  1. 通过 systemctl status sshd 查看失败原因:

sshd : Unregistered Authentication Agent for unix-process

问题原因:

1. /usr/lib/systemd/system/sshd.service 没有删除 2. 删除后通过systemctl enable sshd重新生成

  1. 其他错误的检查手段:

/usr/sbin/sshd -T 命令查看配置是否有问题 /usr/sbin/sshd -ddd 调试模式下运行

4.2 无法远程登录
  1. 检查防火墙,本机的和云主机控制台的。 本机防火墙,如上telnet开放端口的方法。
  2. 验证selinux 是否关闭

getenforce 如果未关闭,关闭之 setenforce 0 上面只是临时关闭了,重启后不生效。下面改配置文件,使永久生效。 vi /etc/selinux/config 修改: SELINUX=disabled 保存退出。

  1. 升级最新的xshell等最新终端工具,不然连不上 或者改下老的算法支持
  2. 在鉴权日志中发现报错:

pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root".

检查以下配置,注释掉:

/etc/pam.d/login 控制台(管理终端)对应配置文件 /etc/pam.d/sshd 登录对应配置文件 /etc/pam.d/system-auth 系统全局配置文件 /etc/pam.d/password-auth 取消相关配置: auth required pam_succeed_if.so uid = 1000 #取消相关配置

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页