1.制作rpm安装包
OpenSSH: Release Noteshttps://www.openssh.com/releasenotes.html
源码包推荐地址:
wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz
wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/8f2e41f3f7eaa8543a2440454637f3c3/x11-ssh-askpass-1.2.4.1.tar.gz
制作包的步骤可以参考:OpenSSH升级8.5版本rpm包制作过程及安装
编译过程遇到的错误:
Error:构建依赖失败: openssl-devel < 1.1 被 openssh-8.8p1-1.el7.x86_64 需要
解决:[root@localhost SPECS]# vi openssh.spec 注释掉 BuildRequires: openssl-devel < 1.1 这一行
2.OpenSSH升级无法用老版本crt和xshell5及5以下版本密码验证登录解决方法
cp -rp /etc/ssh/ /etc/ssh.bak/
cp -rp /etc/pam.d/ /etc/pam.d.bak/
tar zxf openssh-8.8p1-1.tar.gz
rpm -Uvh openssh-*.rpm
chmod 400 /etc/ssh/{ssh_host_ecdsa_key,ssh_host_ed25519_key,ssh_host_rsa_key} #400或600都可以尝试一下
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config #允许root帐号远程登录
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config #开启密码认证方式
echo 'UsePAM yes' >> /etc/ssh/sshd_config #开启UsePAM登录
echo "KexAlgorithms +diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org" >> /etc/ssh/sshd_config #添加支持的加密算法,解决openssh升级后,旧算法不再支持致CRT工具远程连接时无法连接
echo "HostKeyAlgorithms +ssh-rsa" >> /etc/ssh/sshd_config #添加ssh-rsa算法,解决openssh升级后,旧算法不再支持致CRT工具远程连接时无法连接
cat /etc/pam.d.bak/sshd > /etc/pam.d/sshd #升级后sshd文件被重置,需还原配置
用xshell6登录可以在上面的基础删除以下部分
echo "KexAlgorithms +diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org" >> /etc/ssh/sshd_config #添加支持的加密算法,解决openssh升级后,旧算法不再支持致CRT工具远程连接时无法连接
echo "HostKeyAlgorithms +ssh-rsa" >> /etc/ssh/sshd_config #添加ssh-rsa算法,解决openssh升级后,旧算法不再支持致CRT工具远程连接时无法连接
3.支持密钥+密码方式访问
#备份现有的配置文件和权限文件
cp -rp /etc/ssh/ /etc/ssh.bak/
cp -rp /etc/pam.d/ /etc/pam.d.bak/
#上传升级包到服务器进行解压,切换到解压后的目录
cd openssh8.8p1-1
#关闭selinux,需要修改/etc/selinux/config disabled
setenforce 0
#升级安装
yum localinstall -y ./openssh*.rpm (或rpm -Uvh openssh*.rpm或yum -y update openssh*.rpm)
#给文件授权
chmod 400 /etc/ssh/ssh_host_*
#检查配置文件中是否开启允许root远程登录和密码登录,没有开启执行以下两句
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config #允许root帐号远程登录
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config #开启密码认证方式
echo 'UsePAM yes' >> /etc/ssh/sshd_config #开启UsePAM登录
#修改配置
vim /etc/ssh/ssh_config
Host *
PubkeyAcceptedKeyTypes=+ssh-rsa
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
StrictModes no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#是否允许密码登陆,no为不允许
PasswordAuthentication yes
#如果密码和密钥都使用在末尾加上此行代码
#AuthenticationMethods publickey,password
#允许的加密算法
Pubkeyacceptedkeytypes ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
# 替换sshd授权文件内容
cat /etc/pam.d.bak/sshd > /etc/pam.d/sshd #升级后sshd文件被重置,需还原配置
# 重启服务
systemctl restart sshd && systemctl enable sshd
# 升级完成后清理安装包
# 验证
ssh -V
--小胖