软件下载
官方下载:http://www.openssh.com/portable.html
推荐下载最新版
前置准备
为了防止 ssh 升级失败或中途断开后无法登录,需要做一些前置工作
Centos6.X开启telnet服务
- 安装telnet服务端以及超级守护进程
yum install telnet-server xinetd openssl-devel pam-devel -y
- 修改telnet的状态为开启:编辑
`/etc/xinetd.d/telnet`
文件修改disable对应的值为 no - 重启xinetd服务:
service xinetd restart
操作系统还需要创建一个普通用户来登陆,因为 telnet 默认不允许 root 登陆,且 telnet 传输方式是明文的原因,也不推荐使用 root 登陆,避免额外的安全隐患
Centos7.X开启telnet服务
- 安装 telnet 服务
yum -y install telnet-server
- 启动并且设置为自启
systemctl start telnet.socket
systemctl start xinetd
- 安装依赖包:
yum install pam-devel zlib-devel gcc -y
编译源码
- 解压源码后进入到目录中编译,一定要使用
`--with-pam`
,否则一些场景下会出现使用问题
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd --with-pam && make
- 备份原配置文件
cp -a /etc/ssh /opt/ssh
- 卸载旧版本的ssh
rpm -qa | grep openssh | xargs rpm e -nodeps
- 执行安装
make install
- 安装完毕检测回显,可能会提示 key 文件权限问题,根据提示的文件设置为 600 即可
- 检查升级之后的ssh版本
`ssh -V`
- 拷贝启动脚本作为服务 并 设置自启
cp contrib/redhat/sshd.init /etc/init.d/sshd && chkcoonfig --add sshd;chkconfig sshd on
- 还原配置文件
`/etc/ssh/sshd_config`
,之前的配置文件可能做了修改,比如端口,加密套件等 - 还原
`/etc/pam.d/sshd`` `,从 rpm 源码升级,rpm 卸载会重命名备份这个文件为` ``sshd.rpmsave`
- 没有问题了,先测试配置文件再重启 ssh 服务
sshd -t && service sshd restart
- 重启无异常且测试远程登录后,关闭 telnet服务
评论