目录
一、安装
二、配置调整
三、安装完成后常见问题
四:操作步骤截图
注:如果你是远程升级,那么在升级前一定要确认已经开启了telnet和ftp
1、查看当前ssh版本
ssh -V --使用该指令查看当前ssh版本
OpenSSH_5.1p1, OpenSSL 0.9.8h 28 May 2008
2、升级所需软件包准备
libopenssl-devel-1.0.1k-2.36.1.x86_64.rpm
libopenssl-devel-1.0.2l-1.1.noarch.rpm
openssl 和 openssh
3、安装gcc编译工具
zypper install gcc* --使用该指令安装gcc编译工具
4、安装连接库文件
rpm -ivh libopenssl-devel-1.0.1k-2.36.1.x86_64.rpm --nodeps --force
rpm -ivh libopenssl-devel-1.0.2l-1.1.noarch.rpm --nodeps --force
5、安装openssl
openssl version --查看ssl版本
tar -xvf openssl-1.0.2k.tar --解压ssl文件包
cd openssl-1.0.2k
./config --prefix=/usr/local/sslshared no-zlib --进行源代码配置
vi Makefile
找CC= gcc将下面的CFLAG=-DOPENSSL...改为CFLAG=-fPIC -DOPENSSL...
make && make install
ls -al /usr/bin/openssl*
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /usr/local/sslshared/bin/openssl /usr/bin/openssl
openssl version --再次查看ssl版本
6、安装openssh
① tar -zxvf openssh-7.4p1.tar.gz --解压ssh文件
② cd openssh-7.4p1/
③ rpm -qa |grep openssh --查看已安装的ssh
openssh-5.1p1-41.24
openssh-askpass-5.1p1-41.24
④ rpm -e --nodeps openssh-5.1p1-41.24 --删除原来的ssh
rpm -e --nodeps openssh-askpass-5.1p1-41.24
⑤ 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
⑥ ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-tcp-wrappers --with-ssl-dir=/usr/bin/openssl --编译
⑦ make && make install --安装
⑧ ssh -V --查看ssh版本
安装完成后我们需要修改sshd的服务文件,指向这个新的sshd文件。
CentOS6和CentOS7系统修改方法不一样。
CentOS6系统:
# vim /etc/rc.d/init.d/sshd
SSHD=/usr/local/sbin/sshd
启用新的sshd后,由于新版本的OpenSSH默认不允许root用户登录,如果需要使用root远程登录,还需要做一下设置。如果不需要,可以直接重启服务。
新的OpenSSH的配置文件是在/usr/local/etc/这个目录下,编辑/usr/local/etc/sshd_config:
# vim /usr/local/etc/sshd_config
PermitRootLogin yes
重启服务
#service sshd restart
CentOS7系统:
禁用原先的SSH服务,并移除服务文件
# systemctl disable sshd
# mv /usr/lib/systemd/system/sshd.service /sshd.service
在OpenSSH_8.0p1源码包中,把一些服务文件复制到系统中:
# cp contrib/redhat/sshd.init /etc/init.d/sshd
# cp contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
# chmod +x /etc/init.d/sshd
修改/etc/init.d/sshd中的SSHD路径:
# vim /etc/init.d/sshd
SSHD=/usr/local/sbin/sshd
启用新的sshd后,由于新版本的OpenSSH默认不允许root用户登录,如果需要使用root远程登录,还需要做一下设置。如果不需要,可以直接重启服务。
新的OpenSSH的配置文件是在/usr/local/etc/这个目录下,编辑/usr/local/etc/sshd_config:
# vim /usr/local/etc/sshd_config
PermitRootLogin yes
重启服务:
# systemctl daemon-reload
# systemctl restart sshd
警告的大概意思就是,主机密钥发生变更,并提示安全风险(可能存在中间人攻击)
执行 ssh-keygen -R 你要登录的服务器IP 即可
2. 在开启SSHD服务时报错:sshd re-exec requires execution with an absolute path
解决过程:
# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
# /usr/sbin/sshd
3.重启ssh时提示警告:Warning: admin-server.service changed on disk. Run 'systemctl daemon-reload' to reload units.
执行systemctl daemon-reload即可