インターンシップの初日、私は macOS システムを使用して gitlab から git 経由でプロジェクト コードをプルし、エラーを報告しました: 権限が拒否されました (公開キー) インターネット上で多くのブログを検索しましたが、問題は解決できませんでした。一生懸命働いた朝、私は問題の根本を見つけました。
まず、git のインストールが正常であることを確認し、グローバル ユーザー名とメールボックスを構成します。
最初にエラーが報告されたとき、いくつかのブログのガイドラインに従って SSH キーが生成され、gitlab に追加されました。この部分の動作は次のとおりです。
構成が完了した後、再試行しても失敗し、エラーは変わりません。
次のコマンドを使用して、正しいキーが使用されているかどうかを確認します。
ssh-add l
コンテンツがない場合は、次のコードを入力して ssh エージェントのキャッシュにキーを追加します。
ssh-add ~/.ssh/id_rsa
gitlab に接続するために次のコードを実行しようとしますが、それでもエラーが報告されます。
ssh -T [email protected]
エラーから重要な問題を見つけます:相互署名アルゴリズムがありません
キーワード検索によると、OpenSSHの上位バージョンではssh-rsaが有効になっていないことが分かります
検索すると次の解決策が見つかりました。
- PublickeyAcceptedKeyTypes + ssh-rsa 構成を追加
- 鍵生成アルゴリズムを置き換え、ed25519 アルゴリズムを使用して鍵を生成します。
- OpenSSHのバージョンを下げる
私は最初の方法を使用しました。最初にフォルダーに移動します: ~/.ssh
新しい構成ファイルを作成し、次のように入力します
Host *
HostkeyAlgorithms +ssh-rsa
PublickeyAcceptedKeyTypes +ssh-rsa
完了したら、wq を保存してください。再試行すると成功します。