WindowsでVSCodeとGit、GitHubを利用していると、事前にGitBashからキーをssh-addしていても、VSCodeのGUIからpushやpullできない。
初期設定ではVSCodeから利用するsshがGit内蔵のsshとなっているようで、これをWindows上のOpenSSHに変更する必要がある。
WindowsのOpenSSHにてキーをadd
まず、WindowsのOpenSSHを起動し、キーをssh-addしておく。
CMD(管理者権限)
rem windows起動時に自動で起動する設定とする
Sc config ssh-agent start=auto
rem キーファイルをadd
ssh-add キーファイルのパス
rem キーファイルにpassphraseを設定している場合はここで聞かれるため入力
※remはcmdにおけるコメント記述
VSCodeにてWindowsのOpenSSHを使用する設定
次に、VSCodeで使用するsshをWindowsのOpenSSHに変更するためにgitの設定ファイルを編集する。
$HOME/.gitconfigに次の設定を追記する。
[core]
sshCommand = \"C:\\Windows\\System32\\OpenSSH\\ssh.exe\"
※\記号によるエスケープに注意。解釈後に「”ssh.exeのパス“」の形となるように適切に記載する。
VSCodeを起動
以上を実施したうえでVSCodeを起動すると、passphraseを聞かれたりgithubのパーミッションがありませんエラーが出るたりすることなく、GUIからsync(push,pull)できるようになった。
なお、Gitの操作にGitBushによるコマンドを併用している場合は、GitBush側の設定も、WindowsのOpenSSHを参照するように変更する必要があると思われる。
もっと簡単な方法
もともと、Git for Windows インストール時に何も考えずにデフォルトのままインストールしたからこのようなことになった。
Git for Windows をインストールするときに、Windows内蔵のOpenSSHや資格情報を使う選択肢があり、インストール時に注意して選ぶようにすると、VSCodeからすんなりとsyncできた。
Git for Windows を再インストールするものおすすめ。
コメント