前言:

因centos7自带的ssh版本较低,存在高危漏洞,故升级到最新版本(目前是7.5pl)。注:升级ssh存在一定的危险性,一旦不成功可能无法通过远程连接到系统,因此在升级之前最好先安装vnc或者telnet等远程服务,安装方法可以查看我的其它相关文档。

安装telnet服务

1.安装软件

1 # yum -y install xinetd telnet-server* telnet


2.启用telnet服务

# vi /etc/xinetd.d/telnet     (centos7没有这个配置文件,)

将其中disable字段的yes改为no以启用telnet服务

 

linux默认情况下root用户使用telnet是登录不了的,需要修改/etc/secruetty文件

# 允许 root 账号登陆

vi /etc/securetty

# 末尾添加两行

pts/0  

pts/1


# mv /etc/securetty /etc/securetty.old    #允许root用户通过telnet登录 


centos6:

# service xinetd start                    #启动telnet服务 

# chkconfig xinetd on                    #使telnet服务开机启动,避免升级过程中服务器意外重启后无法远程登录系统


centos7:

systemctl enable telnet.socket  

systemctl start telnet.socket  

systemctl enable xinetd  

systemctl start xinetd


1、准备工作:

查看下当前SSH版本:

[root@centos ~]# ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

或者

[root@centos ~]# rpm -qa | grep openssh
openssh-server-6.6.1p1-11.el7.x86_64
openssh-6.6.1p1-11.el7.x86_64
openssh-clients-6.6.1p1-11.el7.x86_64

下载最新版openssh:

[root@bogon bak]# wget 
https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz

备份ssh:

[root@centos bak]# mv /etc/ssh/ /lee/bak/ssh.bak

2、编译安装openssh:

解压安装包:

[root@centos bak]# tar -zxf openssh-7.5p1.tar.gz

编译:

当然编译是需要gcc编译器的,我在这里是用yum安装的:

[root@centos bak]# yum -y install gcc
[root@centos bak]# cd openssh-7.5p1/
[root@centos openssh-7.5p1]# ./configure --prefix=/usr --sysconfdir=/etc/ssh

如果报错:configure: error: *** zlib.h missing - please install first or check config.log ***,需要安装zlib-devel

[root@centos openssh-7.5p1]# yum install -y zlib-devel

如果报错:configure: error: *** OpenSSL headers missing - please install first or check config.log ***,需要安装openssl-devel

[root@centos openssh-7.5p1]# yum -y install openssl-devel

解决完这两个报错后重新执行 ./configure --prefix=/usr --sysconfdir=/etc/ssh

完成后执行make:

[root@centos openssh-7.5p1]# make

make完成后先不要make install,先卸载旧版的openssh

[root@centos openssh-7.5p1]# rpm -e --nodeps `rpm -qa | grep openssh`

完成后执行make install:

[root@centos openssh-7.5p1]# make install

可能会出现报警:

ssh-keygen: generating new host keys: DSA 

/usr/sbin/sshd -t -f /etc/ssh/sshd_config

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Permissions 0640 for '/etc/ssh/ssh_host_rsa_key' are too open.

It is required that your private key files are NOT accessible by others.

This private key will be ignored.

key_load_private: bad permissions

Could not load host key: /etc/ssh/ssh_host_rsa_key

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Permissions 0640 for '/etc/ssh/ssh_host_ecdsa_key' are too open.

It is required that your private key files are NOT accessible by others.

This private key will be ignored.

key_load_private: bad permissions

Could not load host key: /etc/ssh/ssh_host_ecdsa_key

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Permissions 0640 for '/etc/ssh/ssh_host_ed25519_key' are too open.

It is required that your private key files are NOT accessible by others.

This private key will be ignored.

key_load_private: bad permissions

Could not load host key: /etc/ssh/ssh_host_ed25519_key

要重新生成key,然后make install

cd /etc/ssh然后删除ssh_host前缀的KEY文件

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key

ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key


查看下安装结果:

[root@centos openssh-7.5p1]# ssh -V
OpenSSH_7.5p1, OpenSSL 1.0.1e-fips 11 Feb 2013

至此编译安装完成。

3、配置sshd服务:

复制启动文件到/etc/init.d/下并命名为sshd:

[root@centos openssh-7.5p1]# cp contrib/redhat/sshd.init /etc/init.d/sshd

加入开机启动:

[root@centos openssh-7.5p1]# chkconfig --add sshd

4、配置允许root使用ssh:

openssh7.5默认root用户是不能用ssh远程登录的,需要修改配置文件:

[root@centos openssh-7.5p1]# vim /etc/ssh/sshd_config

找到#PermitRootLogin prohibit-password项,去掉注释并把prohibit-password改为yes

PermitRootLogin yes

重启ssh服务:

[root@centos openssh-7.5p1]# service sshd restart

至此升级/安装完成。