centos升级openssh8.7
测试过四台centos7包含离线环境(无外网)和在线环境(有外网并且配置的aliyun的yum源)均没有问题(严格按照命令顺序和步骤执行)
- 1:把openssh8.7.tar.gz上传到服务器
- 2:切换root用户执行:
备份重要文件:
##升级会重置这两个文件,/etc/pam.d/sshd重置会导致无法连接。/etc/ssh/sshd_config文件会导致之前做的一些特殊配置失效或者root用户在升级完成后无法登录
cp /etc/pam.d/sshd ./sshd.bak
cp /etc/ssh/sshd_config ./sshd_config.bak
解压压缩包:
tar xf openssh8.7.tar.gz
cd openssh8.7
rpm -Uvh --force --nodeps *.rpm
还原文件:
cp ./sshd.bak /etc/pam.d/sshd
cp ./sshd_config.bak /etc/ssh/sshd_config
执行测试命令
sshd -t
无输出则表示服务正常
升级完成重新连接可能会出现报错“服务器发送了一个错误的数据包”下面的命令可防止出现此问题
echo "KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1" >> /etc/ssh/sshd_config
service sshd restart
-
3:执行完所有命令先不要断开连接新开窗口测试是否可以登录
-
4:如果没有严格按照以上步骤操作导致出现问题
如果升级完成发现无法连接服务器可能是因为/etc/pam.d/sshd文件原因可以把以下内容替换文件内原内容即可。(前提是可以连接到服务器并且拥有管理员权限)
#%PAM-1.0
auth required pam_sepermit.so
auth substack password-auth
auth include postlogin
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session optional pam_keyinit.so force revoke
session include password-auth
session include postlogin
如果出现root用户无法登录问题则修改/etc/sshd/sshd_config的配置项。(前提是可以连接到服务器并且拥有管理员权限)
PermitRootLogin yes ## 改为yes表示允许root用户登录
如果在连接时出现“服务器发送了一个错误的数据包”则修改/etc/sshd/sshd_config文件在文件内新增以下内容并重启sshd服务。(前提是可以连接到服务器并且拥有管理员权限)
echo "KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1" >> /etc/ssh/sshd_config
service sshd restart
- 如果重启时报错version `OPENSSL_1.0.2' not found (required by openssl)执行如下操作
1:下载1.0.2版本的openssl-lib、openssl-devel、openssl这三个rpm的安装包,或者直接去http://kodbox.jishuliu.cn/#s/8IwvLHFg下载这ssl.tar.gz这个压缩包内有这三个rpm包
2:把下载的三个安装包放到同一目录下,并且不要有除了这三个rpm之外的rpm包,
2:执行rpm -Uvh --force --nodeps *.rpm安装这三个rpm包即可
- 如果执行测试命令出现以下报错
#报错:
cp: overwrite ‘/etc/ssh/sshd_config’? y
[root@localhost openssh8.8]# sshd -t
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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.
Unable to load host key "/etc/ssh/ssh_host_rsa_key": bad permissions
Unable to 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.
Unable to load host key "/etc/ssh/ssh_host_ecdsa_key": bad permissions
Unable to 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.
Unable to load host key "/etc/ssh/ssh_host_ed25519_key": bad permissions
Unable to load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available -- exiting.
#解决方案:
chmod 0600 /etc/ssh/ssh_host_rsa_key
chmod 0600 /etc/ssh/ssh_host_ecdsa_key
chmod 0600 /etc/ssh/ssh_host_ed25519_key
扫描二维码,在手机上阅读