openssh-升级

系统: centos7
openssh升级版本 openssh8.0 p1


准备工作

  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 关闭selinux
setenforce 0
sed -i 's/^SELINUX.*$/SELINUX=disabled/g' /etc/selinux/config
  • 安装telnet服务端
yum -y install telnet telnet-server xinetd
  • 配置telnet-server(使其可远程登录)
#允许root用户通过telnet登陆:
 
vi /etc/pam.d/login
#编辑/etc/pam.d/login,注释掉下面这行
 
#auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
#添加超级用户登陆设备:
 
cp /etc/securetty /etc/securetty.bak
#备份/etc/securetty文件
 
#添加超级用户登陆设备至/etc/securetty文件
echo "pts/1" >> /etc/securetty
echo "pts/2" >> /etc/securetty
echo "pts/3" >> /etc/securetty
echo "pts/4" >> /etc/securetty
echo "pts/5" >> /etc/securetty
echo "pts/6" >> /etc/securetty
echo "pts/7" >> /etc/securetty
echo "pts/8" >> /etc/securetty
echo "pts/9" >> /etc/securetty
echo "pts/10" >> /etc/securetty
echo "pts/11" >> /etc/securetty
#开启root用户远程登陆:
 
vi /etc/pam.d/remote
#编辑/etc/pam.d/remote,注释下列这行
 
#auth required pam_securetty.so
  • 启动telnet-server并设置开机启动
systemctl start telnet.socket xinetd.service
systemctl enable xinetd.service telnet.socket
  • 下载程序包
#openssl-1.0.2r / zlib-1.2.11 / openssh-8.0p1
mkdir -p /setup/openssh
wget https://www.openssl.org/source/openssl-1.0.2r.tar.gz -P /setup/openssh/
wget http://www.zlib.net/zlib-1.2.11.tar.gz -P /setup/openssh/
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz -P /setup/openssh/
  • 安装依赖包
yum -y install gcc make perl zlib zlib-devel pam pam-devel

升级openssh

升级顺序 zlib库-> openssl -> openssh
用telnet远程登录服务器

  • 停止openssh
systemctl stop sshd.service
  • 卸载原有openssh
#备份原配置
mv /etc/ssh /etc/ssh.bak
mv /etc/pam.d/sshd /etc/pam.d/sshd.bak
mv /etc/pam.d/ssh-keycat /etc/pam.d/ssh-keycat.bak
 
rpm -e --nodeps `rpm -qa | grep openssh`
  • 编译安装zlib
cd /setup/openssh/
tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure --prefix=/usr/local/zlib
make && make install
 
echo '/usr/local/zlib/lib' >> /etc/ld.so.conf.d/zlib.conf
ldconfig -v
  • 编译安装openssl
cd /setup/openssh/
tar zxvf openssl-1.0.2r.tar.gz
cd openssl-1.0.2r/
./config shared zlib
make && make install
 
mv /usr/bin/openssl /usr/bin/openssl.old
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.d/ssl.conf
ldconfig -v
#检测openssl版本
openssl version -a
 
OpenSSL 1.0.2r
  • 编译安装openssh
cd /setup/openssh/
tar zxvf openssh-8.0p1.tar.gz
cd openssh-8.0p1/
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl --mandir=/usr/share/man --with-zlib=/usr/local/zlib --with-pam --with-md5-passwords
make && make install
 
cp /usr/local/openssh/bin/* /usr/bin/
cp /usr/local/openssh/sbin/* /usr/sbin/
 
cp /setup/openssh/openssh-8.0p1/contrib/redhat/sshd.pam /etc/pam.d/sshd
cp /setup/openssh/openssh-8.0p1/contrib/redhat/sshd.init /etc/init.d/sshd
chmod u+x /etc/init.d/sshd
chkconfig --add sshd
mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
vim /etc/ssh/sshd_config
#修改配置文件
 
echo 'HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
SyslogFacility AUTH
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication yes
PermitRootLogin yes
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
UseLogin yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem       sftp    /usr/local/openssh/libexec/sftp-server
UseDNS=no' > /etc/ssh/sshd_config
echo '#%PAM-1.0
auth       required     pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
# Used with polkit to reauthorize users in remote sessions
-auth      optional     pam_reauthorize.so prepare
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare' > /etc/pam.d/sshd
  • 启动并设置开机启动
service sshd start
chkconfig sshd on

猜你喜欢

转载自www.cnblogs.com/taoyuxuan/p/12157522.html