1. 报错信息与正确信息对比. 今天使用SSH key拉取github代码又失败了, 为什么是又😂. 上次端口错误
贴出报错信息
# 出错主机日志
ssh -vT [email protected]
OpenSSH_6.5
Server accepts key: pkalg ssh-rsa blen 279
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/root/.ssh/git_cron':
本机正确的日志
ssh -vT [email protected]
OpenSSH_7.9p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/csx/.ssh/config
debug1: /Users/csx/.ssh/config line 4: Applying options for githu
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /Users/csx/.ssh/git_rsa RSA SHA256:Teicz+bsGWbbB4P327A0nB5eU/u+aVxxn4RNxS3QBZc explicit
debug1: Server accepts key: /Users/csx/.ssh/git_rsa RSA SHA256:Teicz+bsGWbbB4P327A0nB5eU/u+aVxxn4RNxS3QBZc explicit
2. 分析与尝试解决.
我的SSH key生成的时候是没有使用passphrase, 每次在主机去测试的时候都让填写, 很奇怪.
提示PEM_read_PrivateKey failed问题, 怀疑是权限错误.
将.ssh设置成700, rsa设置成600, 还提示同样的错误
继续在网上搜索, 这篇 帖子
发现OpenSSH 6.5支持的格式是
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
我是使用本机生成的SSH KEY格式
-----BEGIN OPENSSH PRIVATE KEY-----
-----END OPENSSH PRIVATE KEY-----
7.9的版本已经使用新版本SSH KEY格式, 6.5的不支持造成的.
3. 解决办法, 是更新OpenSSH
# 查看可以更新的openSSH
yum update
手动选择openssh的软件包即可, 推荐全部更新, 因为老版本的软件使用问题太多了.