云计算百科
云计算领域专业知识百科平台

【GitLab服务器SSH访问无法生效的问题解决过程】

在连接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 +sshrsa

  • 更新本地客户端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算法,推荐采用其他算法加密的密钥更好。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 【GitLab服务器SSH访问无法生效的问题解决过程】
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!