俺はただwindows 10のvscodeからgit pushしたかっただけ

前書き

Visual Code Studioが最近人気ですね。(要出典)

会社のMacで便利に使ってます。

家のWindowsでも使いはじめたのですが、なぜかvscodeのgit pushを実行するとPermission Deniedのアラートが表示されてしまっていました。

Git Bashからならば(毎回sshパスフレーズは聞かれていましたが)git push出来ていたので放置していたのですが、ちょっと気になってきたので腰をあげて解決することにしました。

状況

Version Control in Visual Studio Code にてWindowsVisual Studio CodeでGitを使う場合はGit for Windowsをインストールすることが必要とされていたため従いました。

Git for Windowsをインストールしたし、bashに慣れていたため、Integrated Terminal in Visual Studio Code に従いvscodeのターミナルにGit Bashを採用しました。

解決例

まとめ

  1. 2019/3時点でWindows 10にインストール済みのOpenSSH(ssh.exe)を使う
  2. ssh-agent.exeを使う(windowsのサービスとして起動する)
  3. Windows起動時に毎回ssh-add.exeで秘密鍵ssh-agent.exeに登録する

 これでvscodeからもGit Bashからもgit pushできるようになりました。

詳細

2019/3時点でWindows 10にインストール済みのOpenSSH(ssh.exe)を使う

vscodeからgit pushするときにOpenSSHを使うため、C:\Users\<username>\.gitconfigに以下を記述。


[core]
        sshCommand = C:/Windows/System32/OpenSSH/ssh.exe

 

Git Bashからgit pushするときに使われるsshをOpenSSHにするため、C:\Users\<username>\.bash_profileに以下を記述。

alias ssh="/c/Windows/System32/OpenSSH/ssh.exe"

おまけで、WindowsのOpenSSHを使うようになったので、C:\Users\<username>\.ssh\configにあるIdentityFileのパス記述形式を修正。

Host bitbucket.org
  IdentityFile C:\Users\<username>\id_rsa
  User git
ssh-agent.exeを使う(windowsのサービスとして起動する)

こちらの通り。

qiita.com

Windows起動時に毎回ssh-add.exeで秘密鍵ssh-agent.exeに登録する

コマンドプロンプトを起動し以下を実行。

C:\Users\ajishixo>ssh-add C:\Users\<username>\id_rsa
Enter passphrase for C:\Users\<username>\id_rsa:
Identity added: C:\Users\<username>\id_rsa (C:\Users\<username>\id_rsa)

試行錯誤のメモ(箇条書き)