注意事项:
1、需要开启telnet以防ssh服务出问题。
2、重启后ssh服务要能启动。
3、防火墙端口注意放行。
留好退路:
一、升级之前先把telnet开起来,防止意外导致ssh无法连接。
1、安装xinetd
yum install telnet-server
就是安装下边两个包。
telnet-server-0.17-48.el6.x86_64.rpm
xinetd-2.3.14-40.el6.x86_64.rpm
2、查看一下是否为开机自启,下边两个命令执行一条就行。
chkconfig --list vim /etc/xinetd.d/telnet
3、让telnet托管给xinetd并设置为开机自启
cd /etc/xinetd.d/ sed -r 's/disable([[:space:]])=([[:space:]])no/disable\1=\2yes/g' /etc/xinetd.d/telnet sed -i '/disable/s/yes/no/g' telnet chkconfig telnet on service xinetd restart; mv /etc/securetty /etc/securetty.bak
vim /etc/pam.d/login
注释下面这一行,
#auth xxxxxxxxx pam_securetty.so 注释这行
注意:ssh测试可以登录后,将上面的2个文件再改回去。
5、验证telnet可以正常登录。有开启防火墙的注意添加防火墙规则放行23端口。
echo '-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT' >> /etc/sysconfig/iptables
开始升级:
一、卸载当前yum安装的openssh相关软件包,避免干扰。
cp /etc/init.d/ssh /etc/init.d/ssh.old cp -r /etc/ssh /etc/ssh.old cp ~/.ssh/authorized_keys ~/.ssh/authorized_keys.old rpm -e --nodeps `rpm -qa |grep openssh`
openssh一搬会默认安装三个包
openssh
openssh-clients
openssh-server
检查下是否卸载完了:
rpm -qa openssh*
二、安装相关依赖包,开始安装。
1)openssh需要依赖openssl
查看解压的tar包中的INSTALL文件。里边有依赖的包版本信息。
yum -y install gcc zlib-devel openssl-devel pam-devel
2)下载解压安装包
wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz tar zxvf openssh-7.9p1.tar.gz cd openssh-7.9p1
3)默认安装
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd make make install
4) 在openssh编译目录执行如下命令
install -v -m755 contrib/ssh-copy-id /usr/bin install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1 install -v -m755 -d /usr/share/doc/openssh-7.9p1 install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.9p1 ssh -V
5)服务自启动(升级完成后注意 /etc/init.d/sshd文件中的KEYGEN=,SSHD=路径,默认为/usr/bin/)
sed -i '/^#UseDNS yes/s/.*/UseDNS no/' /etc/ssh/sshd_config sed -i '/^#PermitEmptyPasswords no/s/.*/PermitEmptyPasswords no/' /etc/ssh/sshd_config echo "PermitRootLogin yes" >> /etc/ssh/sshd_config echo 'X11Forwarding yes' >> /etc/ssh/sshd_config cp -p contrib/redhat/sshd.init /etc/init.d/sshd chmod +x /etc/init.d/sshd chkconfig --add sshd chkconfig sshd on chkconfig --list sshd service sshd restart
6)关闭telnet服务
chkconfig telnet off; chkconfig --del telnet; service xinetd restart service xinetd stop chkconfig xinetd off mv /etc/securetty.bak /etc/securetty
7)删除telnet-server包
rpm -e --nodeps `rpm -qa |grep telnet`
8)删除防火墙规则
vim /etc/sysconfig/iptables
删除前文添加加的这条防火墙规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
service iptables restart;
9)最后
vim /etc/pam.d/login
下面这一行取消注释
auth xxxxxxxxx pam_securetty.so

发表评论