GitとGitHubの勉強を始めました。
そして、練習用にリポジトリを作成し、git bash で origin リポジトリ (GitHub 内) にコミットをプッシュできるようになりました。
しかし、Visual Studio Codeにプッシュしようとすると、このエラーが発生しました
権限が拒否されました (公開鍵)。
致命的: リモート リポジトリから読み取ることができませんでした。
元のリポジトリへのプッシュに失敗しました。
しかし私はすでに、git bash の ssh キーを使用してローカル リポジトリを元のリポジトリにリモート接続し、ローカル リポジトリと元のリポジトリ間のプッシュとプルを完了できました。
他の人の場合プッシュまたは同期するには GitHub の資格情報を求められましたが、私の場合は、ssh キーなどの資格情報は求められませんでした。
この場合、どうすればいいでしょうか? ありがとうございます。
ベストアンサー1
@codewizard の回答が正しいと思いました。VS Code は 'id_rsa.pub' キーのみを使用しているようで、git.exe が使用するように構成された他の ssh キー ペアは使用していませんでした (このキーの名前は id_rsa ではありませんでした)。ただし、新しい id_rsa キー ペアを生成した後も、アクセス許可が拒否されました (publickey)。
このブログ記事で答えを見つけました。どうやら vs code には対話するための ssh-agent がないようです。
http://blog.alner.net/archive/2015/08/24/vs_code_with_git_ssh_keys_that_use_passphrases.aspx
ブログの解決策は
- コマンドプロンプトを開きます。
- 「start-ssh-agent」を実行し、パスフレーズのプロンプトに答えます。
- 「code」を実行して、その環境から VS Code を起動します。
私はgit-bashを使って
sshエージェントを起動しました。eval "$(ssh-agent -s)"
その後"code"
VS Codeを起動します。
注記:@JoshuaH がコメントで指摘しているように、上記の手順を簡略化するための Windows ショートカットを作成できます。cmd /c start-ssh-agent & code
git fetch が機能し始めました。しかし、x 分ごとに openssh パスフレーズ ボックスが表示されるようになりました (時間制限なし)
そこで、git-bashを使用してキーが再度追加されたことを確認し"ssh-add ~/.ssh/id_rsa"
、git config --global credential.helper wincred
毎回パスワードプロンプトを表示したい場合は、前の2つのコマンドを無視し、VS Codeの設定で自動フェッチを無効にしてください。VS
"git.autofetch": "true"
Codeの設定で"git.autofetch": "false"