CentOS升级openssh – 记忆角落

CentOS升级openssh

/ 0评 / 0

CentOS升级openssh

1.准备(必备)

centos安装telnet-server,默认启动23端口,通过telnet客户端可以连接telent-server服务器,正常执行linux的操作,但是因为telnet在网络上是通过明文传输的,不安全,所以升级完ssh之后需要重新关闭telnet-server服务。

执行步骤

yum install -y telnet-server xinetd

telnet-server托管于linux的超级进程xinetd,配置xinetd,执行

vi /etc/xinetd.d/telnet

如果文件不存在的话则新建文件,如果文件存在,检查disable 参数是否设置为no ,如果是yes,则改为no

service telnet
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd
        log_on_failure  += USERID
        disable         = no
}

重启xinetd

service xinetd restart
#或者根据操作系统的版本不同
systemctl restart xinetd

查看telnet端口是否启动,看到23端口(默认)也有可能是其他端口 即正常启动

netstat -ntlp |grep xinetd

默认情况下,telnet不允许root远程登录,我们此处使用普通用户登录telnet,如果需要root权限,用普通用户登录 通过su root切换至root即可

2.备份ssh文件

cp -r  /etc/ssh   /etc/ssh`date -I`
cp -r  /etc/pam.d /etc/pam.d`date -I`
cp -r /etc/init.d/sshd /etc/init.d/sshd`date -I`
cp  /usr/bin/ssh /usr/bin/ssh`date -I`

3.升级openssh的步骤

1.安装依赖包

yum install libzip-dev libssl-dev autoconf gcc libxml2 make -y

2.下载源码文件包

# 下载源码包,如果离线,可在本机环境下载后上传
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.8p1.tar.gz
wget https://www.openssl.org/source/openssl-1.1.1m.tar.gz --no-check-certificate
wget http://www.zlib.net/zlib-1.2.11.tar.gz

# 解压升级包
tar -xvf openssh-8.8p1.tar.gz
tar -xvf openssl-1.1.1m.tar.gz
tar -xvf zlib-1.2.11.tar.gz

3.编译安装zlib

cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make && make install

4.编译安装openssl

cd openssl-1.1.1m

./config --prefix=/usr/local/ssl -d shared

make && make install

mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
echo '/usr/local/ssl/lib' >> /etc/ld.so.conf

ldconfig -v 

5.安装openssh

cd openssh-8.8p1

./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl

make && make install

6.sshd_config文件修改

如果原来的sshd_config修改过很多参数,需要于原来的进行对比哦

echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config

echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config

echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config

7.备份原有文件,并将新的配置复制到指定目录

mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config

mv /usr/sbin/sshd /usr/sbin/sshd.bak
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd

mv /usr/bin/ssh /usr/bin/ssh.bak
cp /usr/local/openssh/bin/ssh /usr/bin/ssh

mv /usr/bin/scp /usr/bin/scp.bak
cp /usr/local/openssh/bin/scp /usr/bin/scp

mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen

mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub

8.启动sshd

service sshd restart

9.查看信息版本

ssh -V
sshd -V

10.开机自启动

/etc/rc.d/init.d/sshd start  #启动sshd
/etc/rc.d/init.d/sshd stop   #停止sshd

#其他命令
systemctl enable sshd  #开机自动启动
systemctl start sshd   #启动sshd
systemctl status sshd   #查看状态
systemctl restart sshd  # 重新启动

参考:https://blog.csdn.net/qq_44534541/article/details/117396127

发表评论

您的电子邮箱地址不会被公开。