OpenSSH升级后Jenkins无法连接gitee

openssl升级后Jenkins无法连接gitee

异常信息:

Failed to connect to repository : Command "/usr/bin/git ls-remote -h -- git@gitee.com****.git HEAD" returned status code 128:
stdout:
stderr: /etc/crypto-policies/back-ends/openssh.config: line 3: Bad configuration option: gssapikexalgorithms
/etc/crypto-policies/back-ends/openssh.config: terminating, 1 bad configuration options
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

通过 ssh -T 测试

jenkins配置上异常信息

解决方案

/etc/crypto-policies/back-ends/openssh.config 第3行(找到GSSAPIKexAlgorithms)注释掉,重启sshd: systemctl restart sshd

重启后测试 ssh -T git@gitee.com,如下图连接成功,验证jenkins正常

测试 ssh -T git@gitee.com提示Unsupported option "gssapiauthentication",可以到对应文件注释掉gssapiauthentication如下图,再次测试就不会报Unsupported option "gssapiauthentication"

### 问题分析 OpenSSH 升级后出现的连接失败问题通常与配置兼容性、密钥格式变更或底层依赖库(如 OpenSSL)版本一致有关。在升级过程中,如果未正确处理这些组件之间的匹配关系,可能导致 SSH 客户端无法正常建立安全连接。 #### 检查 OpenSSH 配置文件兼容性 升级后的 OpenSSH 可能引入了新的默认配置规则,导致旧配置文件中某些参数再被支持或行为发生变化。建议检查 `/etc/ssh/sshd_config` 文件,确保以下关键参数设置合理: - `PermitRootLogin`:是否允许 root 登录 - `PasswordAuthentication`:是否启用密码认证 - `PubkeyAuthentication`:是否启用公钥认证 - `ChallengeResponseAuthentication`:是否启用挑战响应机制 若确定配置是否合适,可尝试使用默认配置启动 sshd 并逐步恢复自定义内容: ```bash /usr/sbin/sshd -t -f /etc/ssh/sshd_config ``` 该命令用于验证配置文件语法正确性,避免因格式错误导致服务无法启动[^1]。 #### 验证 OpenSSL 库与头文件一致性 OpenSSH 编译时若使用的 OpenSSL 版本与运行时加载的库版本一致,可能导致 TLS 握手失败或证书验证异常。可通过以下方式排查: - 使用 `ldd /usr/sbin/sshd` 查看实际链接的 libssl.so 路径 - 运行 `openssl version` 获取当前系统使用的 OpenSSL 版本 - 确认 `/usr/bin/openssl` 指向的路径是否与编译 OpenSSH 时指定的 `--with-ssl-dir` 一致 若发现多个 OpenSSL 安装路径冲突,应调整动态链接器配置并更新缓存: ```bash echo "/opt/openssl/lib" > /etc/ld.so.conf.d/openssl.conf ldconfig ``` 此操作可确保运行时加载正确的 OpenSSL 动态库[^5]。 #### 检查证书与密钥格式 OpenSSH 8.8 及以上版本默认禁用 RSA SHA-1 签名算法,若服务器仍使用旧版密钥格式(如 `ssh-rsa`),将导致客户端连接失败。建议生成符合现代标准的新密钥对: ```bash ssh-keygen -t ed25519 -C "your_email@example.com" ``` 同时,在客户端配置文件中添加如下内容以兼容新密钥类型: ```conf Host * IdentityAgent none PubkeyAcceptedKeyTypes +ssh-rsa HostKeyAlgorithms +ssh-rsa KexAlgorithms +diffie-hellman-group1-sha1 ``` 此配置允许临时回退至旧协议版本以测试连接稳定性[^2]。 #### 使用日志诊断连接失败原因 在服务器端查看 SSH 守护进程日志有助于定位具体故障点: ```bash journalctl -u sshd.service --since "5 minutes ago" ``` 常见错误包括: - `no hostkey alg`:缺少可用的主机密钥算法 - `Permission denied (publickey)`:公钥认证失败 - `kex_exchange_identification: Connection closed by remote host`:协议握手阶段断开 根据日志提示可进一步判断是网络层问题还是认证机制配置当。 #### 强制使用特定加密套件进行测试 若怀疑是加密算法协商失败导致连接中断,可在客户端使用 `-o` 参数强制指定加密方式: ```bash ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 user@hostname ``` 此方法可用于排除因 DH 组大小限制或算法弃用引发的问题[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值