SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定;在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。确保了传递的数据安全。
SSH是专为远程登录会话和其他网络服务提供的安全性协议。利用 SSH 协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境运维工作中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件,如telnet(23端口,非加密的)等。
下面介绍,如何在离线状态下升级linux(cenos7.3,内核3.10.0-514.el7.x86_64)ssh服务,执行安装的路径自定义,当前安装执行路径为/hoem/openssh。
注意:确保环境中有gcc编译器
升级zlib插件
zlib的作用是提供压缩传输支持,没有安装zlib,编译安装openssh时会报错:找不到zlib.h文件。
官网下载地址:http://www.zlib.net/, 当前下载版本:zlib-1.2.11.tar.gz
编译安装:
#tar xzvf zlib-1.2.11.tar.gz
#cd zlib-1.2.11
#./configure --prefix=/usr/local/zlib
#make
#make install
执行完成后,zlib被安装在/usr/local/zlib下。
升级openssl插件
openssl作用:提供加密支持。
官网下载地址:http://www.openssl.org,当前下载版本:openssl-1.0.2h.tar.gz
编译安装:
#tar xzvf openssl-1.0.2h.tar.gz
#cd openssl-1.0.2h
#./Configure --prefix=/usr/local/openssl
#make
进行 SSL 加密协议的完整测试,如果有报错信息,一定要找出原因,可能导致最终 SSH 不能使用
#make test
#make install
升级openssh
官网下载地址:http://www.openssh.com,当前下载版本:openssh-7.9p1.tar.gz
编译安装:
#tar xzvf openssh-7.9p1.tar.gz
#cd openssh-7.9p1
#./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib=/usr/local/zlib --with-ssl-dir=/usr /local/openssl --with-md5-passwords
可能报错信息:
configure: error:OpenSSL headers missing - please install first or check config.log
- 安装openssl、openssl-devel,rpm以及依赖包下载链接
- 链接: https://pan.baidu.com/s/1BKNPi3SC2CG716kCUHl3ig 提取码: c3rp
- 下载完成后,执行安装命令:rpm -Uvh ./*.rpm --nodeps --force即可
configure 时提示 PAM 有错误
- 一般是因为系统中没有安装 pam-devel RPM 包,上一步链接中有pam-devel的rpm包
- 下载,执行安装即可解决问题。
1
2
3
4
5
6
7
8
9
#make
#make install
可能的报错信息:
- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- @ 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.
- Error loading host key “/etc/ssh/ssh_host_ed25519_key”: bad permissions
- Could not load host key: /etc/ssh/ssh_host_ed25519_key
- sshd: no hostkeys available – exiting.
- make: [check-config] Error 1 (ignored)
- 解决办法:#rm -rf /etc/ssh/ssh_host_*
#make install
#systemctl restart sshd
–如何服务重启失败,试试文末安装openssh的sh脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
这样就完成了整个升级 SSH 的工作。
重启sshd服务:systemctl restart sshd
添加开机启动:systemctl enable sshd(保险起见)
验证:ssh -V
友情链接:linux_rpm包下载地址:https://centos.pkgs.org/
安装openssh的脚本:
#!/bin/bash
#卸载旧的ssh
cp -r /etc/ssh /etc/ssh.old #备份
rpm -qa|grep openssh
rpm -e --nodeps openssh-clients-6.6.1p1-31.el7.x86_64
rpm -e --nodeps openssh-6.6.1p1-31.el7.x86_64
rpm -e --nodeps openssh-server-6.6.1p1-31.el7.x86_64
rpm -qa|grep openssh
make uninstall
安装OpenSSH
install -v -m700 -d /var/lib/sshd
chown -v root:sys /var/lib/sshd
groupadd -g 50 sshd
useradd -c ‘sshd PrivSep’ -d /var/lib/sshd -g sshd -s /bin/false -u 50 sshd
#解压安装
tar -zxvf openssh-7.9p1.tar.gz
cd openssh-7.9p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd
make
#修改相应文件权限
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key
#安装
make install
#配置
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*
install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.9p1
#根据自身需求改写配置文件。因为配置文件为初始配置文件。所以和之前的不一样。可以使用备份配置文件覆盖。
echo “PermitRootLogin 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
systemctl restart sshd
#3 验证操作
ssh -V
————————————————
版权声明:本文为CSDN博主「CR_1997」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/CR_1997/article/details/90258287