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