Posted at

VSCodeからGitのリモートにアクセスできないときの対処方法(Windows 10)


はじめに

自分は普段のコーディングにはVSCodeを使用することが多いですが,VSCodeはGit関連の機能も標準で充実しています.ただWindowsで使っているときにGitのリモートリポジトリにアクセスする操作,例えばgit pullgit pushを行うとPermission denied (publickey).とエラーが出てしまっていたので,対処方法を調べたときのメモです.(sshキーのパスフレーズが入力できない.)


環境

今回,自分が試した環境は次の通りです.


  • Windows 10 Pro

  • VSCode 1.29.1

  • git version 2.19.2.windows.1


前提

ターミナルでgit pullなどすると正常に操作できている状態です.

> git pull origin master

Enter passphrase for key '/c/Users/username/.ssh/id_rsa':
From github.com:username/repository
* branch master -> FETCH_HEAD
Already up to date.


対処方法

VSCodeでGitのリモートへアクセスするための手順です.


OpenSSHの指定

GitのOpenSSHを,Gitに同梱されているものでなくWindowsに付属されているOpenSSHを使用するように指定します.

> git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"

.gitconfigに次のように設定されます.


.gitconfig

[core]

sshCommand = C:/Windows/System32/OpenSSH/ssh.exe


ssh-agentサービスの起動

OpenSSH Authentication Agentを自動起動するように設定します.PCを再起動するか手動でこのサービスを開始します.

このssh-agentもGitに同梱されているものでなく,Windows標準のものになります.


キーの登録

sshの秘密鍵をssh-agentに登録します.

このssh-addも同じくWindows標準のものを使用するようにしてください.

> ssh-add

Enter passphrase for C:\Users\username/.ssh/id_rsa:
Identity added: C:\Users\username/.ssh/id_rsa (C:\Users\username/.ssh/id_rsa)

ここまでの対応で,パスフレーズを毎回入力する必要がなく,VSCodeからもgit pullgit pushが使えるようになります.


おわりに

参考にしたのはこのissueです.

https://github.com/Microsoft/vscode/issues/13680

ちなみにssh-keygenするときにパスフレーズを設定しなければ,何もしなくてもVSCodeであつかえます.