背景
centos系統升級openSSH後,伺服器上無法再拉取程式碼,報錯如下:
原因
伺服器重新安裝SSH後公鑰改變,需要重新安裝
ssh-keygen -t rsa -C "郵箱地址"
生成公鑰,刪除gitlab原有公鑰,但是git pull依然報錯如下:
依然提示公鑰有問題,沒有pull許可權
解決方案
1、刪除.ssh/known_hosts裡面的內容
2、如果重新生成公鑰還是沒法pull程式碼可能會有一下情況
3、8.8版本開始OpenSSH就不支援rsa加密演算法了,mac也是因為升級了OpenSSH,所以不支援rsa演算法
4、GitHub 透過在 2022 年 3 月 15 日刪除舊的、不安全的金鑰型別來提高安全性。
ssh-dss
自該日期起,不再支援 DSA
金鑰 ( )。您不能將新的 DSA 金鑰新增到您在 GitHub.com
上的個人帳戶。
2021 年 11 月 2 日之前的 RSA 金鑰 ( ssh-rsa ) valid_after
可以繼續使用任何簽名演算法。在該日期之後生成的 RSA 金鑰必須使用 SHA-2
簽名演算法。一些較舊的客戶端可能需要升級才能使用 SHA-2
簽名。
ssh-keygen -t ed25519 -C "<comment>"
注意:如果您使用的是不支援 Ed25519 演算法的舊系統,請使用:
ssh-keygen -t rsa -b 4096 -C "<comment>"
5、使用rsa演算法生成不支援的話改用ed25519的加密方式生成公鑰,配置後就可以了
以上是本人開發中遇到的問題,以及解決方案,如果幫助請選擇使用