Centos6.7远程升级openssh-7.9p1

 伤脑筋   2018-11-18 14:37   20035 人阅读  0 条评论

注意事项:

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



本文地址:https://www.clrun.com/2018/11/189.html
版权声明:本文为原创文章,版权归 伤脑筋 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?