可以安装telnet防止意外连接不上
yum install -y telnet-server
cp /etc/securetty{,.bak}
vim /etc/securetty
# 最后添加,为了能用root登录
pts/0
pts/1
systemctl start telnet.socket
# 本地telnet测试可以连接
# 安装完成后可以删除
yum remove -y telnet-server
# 并恢复配置
mv /etc/securetty.bak /etc/securetty
yum -y install gcc-c++ gcc glibc autoconf openssl openssl-devel pcre-devel pam-devel
# --no-same-owner 谁解压的就是谁的用户,防止出现用户id为1001这种情况
tar --no-same-owner -zxvf zlib-1.2.11.tar.gz
tar --no-same-owner -zxvf openssh-8.3p1.tar.gz
tar --no-same-owner -zxvf openssl-1.1.1g.tar.gz
编译zlib-1.2.11
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make && make install
编译openssl-1.1.1g
cd ../
cd openssl-1.1.1g
# shard作用是生成动态链接库
./config --prefix=/usr/local/ssl -d shared
echo $?
make && make install
# 如果以前更新过,需要把以前的内容注释掉,不然编译ssh时会报错
echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
# 默认ld.so.conf
# cat /etc/ld.so.conf
# include ld.so.conf.d/*.conf
ldconfig -v
编译openssh-8.3p1
cd ..
cd openssh-8.3p1
./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
echo $?
make && make install
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
备份原有并换新
mv /usr/bin/openssl /usr/bin/openssl.bak
cp /usr/local/ssl/bin/openssl /usr/bin/openssl
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/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
重启sshd服务
systemctl restart sshd
重启存在问题解决办法
mv /lib/systemd/system/sshd.service /tmp
cp /root/ssh/openssh-8.3p1/contrib/redhat/sshd.init /etc/init.d/sshd
systemctl daemon-reload
service sshd restart
参考--https://www.cnblogs.com/luckjinyan/p/13124422.html
网友评论