在连接gitlab过程中,已经配置了SSH KEY但一直表现为Permission denied (publickey,password).。无法连接。
1. 发现过程
发现过程:
1.利用ssh -vT git@xxx.xxx.xxx.xxx提示
- debug1: debug1: Offering RSA public key: /c/Users/xxx/.ssh/id_rsa
复制代码 说明公钥有被推送到服务端;
2.在服务端运行service ssh status检察ssh日志,并在客户端再次运行ssh -vT git@xxx.xxx.xxx.xxx,发现服务端日志中出现
- `userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]`
复制代码 发现问题,gitlab服务端ssh服务默认不允许ssh-rsa算法的密钥访问
百度发现这里的签名算法ssh-rsa,它大概代表利用SHA-1哈希算法的RSA签名。因为SHA-1是不安全的,OpenSSH禁用ssh-rsa自8.8版以来的签名算法。
**
2. 两种办理办法
**
有两种办法:
- 在/etc/ssh/sshd_config文件末尾加上以下内容,并运行systemctl restart sshd.service重启服务,注意*:此操作是更新gitlab服务端配置,不是当地客户端哈。
- - PubkeyAcceptedAlgorithms +ssh-rsa
复制代码
- 更新当地客户端ssh key,接纳更安全的算法如:ecdsa 等
实行ssh-keygen -t ecdsa -b 521 -f ~/.ssh/id_ecdsa天生新密钥,记得更新config文件,然后将id_ecdsa.pub内容赋值到gitlab,新增ssh key,删除旧ssh key。
- Host *
- HostName xxx.xxx.xxx.xxx
- User git
- PreferredAuthentications publickey
- IdentityFile ~/.ssh/id_ecdsa
复制代码 方法1的操作是在服务端,方法2是在当地天生ssh key然后在gitlab web页面配置ssh key,别搞错了。
再次实行ssh -vT,能找到Welcome to GitLab字眼说明可以正确连接ssh了,皆大高兴~
结论,就是sshd服务不推荐rsa1算法,推荐接纳其他算法加密的密钥更好。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |