VSCode から SSH 経由で Push¶
表題のことをやろうとしたらものすごくハマったのでメモ。
https で PUSH する場合なら問題なくできるのだが、
その場合、毎度パスワードを聞かれてしまって非常にめんどくさいので
SSH 化してみた。
が、
これがでてしまって接続できない。
うーん。
SSH の認証用の鍵ファイルを作る¶
まずは、認証用の鍵を作成する。
コマンドプロンプトで、
1 |
|
に移動して
1 |
|
同フォルダに鍵を作成。
.ssh フォルダ下に id_rsa.pub ファイルが作成されているので、中に書かれているテキストを
GitHub に登録する。
Settings の SSH and GPG keys をクリックして、
New SSH key をクリック。
Title には MyPC のようなにのキーなのかを入力し、
Key に、id_rsa.pub の中身をコピペして、Add SSH Key を追加する。
config 作成¶
Git で、ssh を使用して接続するときのオプションを config ファイルに記入する。
1 |
|
下に、config ファイル(拡張子なしのテキスト)を作成。
その中に
1 2 3 4 |
|
このように書く。
こうしておくと、github.com で SSH 接続する場合、
この設定に書かれている id_rsa などの設定で接続できるようになる。
続いて、この config が Git で使われるようにシンボリックリンクを作成する。
1 |
|
ssh_config がすでにある場合は、削除する。
リンクが張られていない場合は、 .ssh 下に config を作成していても
そもそも使われていなかった。(ハマりポイント1)
ssh-agent を起動し忘れていた¶
鍵を作成して config を指定したのに、これでもうまくいかなかった。
うーむ、なんだろうと調べていったら
そもそも ssh-add でキーを登録していないと NG だった。
が、
1 |
|
になってしまって、キーを追加することすらできなかった。(ハマりポイント2)
このエラーが出るときは、Windows のサービスでエージェントが起動していないのが原因だった。
Windows のサービスから OpenSSH Authentication Agent のプロパティを開いて
開始+スタートアップからも起動できるようにしておく。
ここまでやってから、接続できるかテストしてみる。
1 |
|
こんな感じで実行して、うまくいっていれば
1 |
|
GitHub のアカウント名(fereria)とう表示がされる。
ログイン時の名前は、fereria@github.com のようにしたくなるが、
この部分のアカウント名は git@で固定なので注意が必要。
接続はできたので、SSH 鍵の登録はおそらく問題はなさそう。
うまくいかない場合は
1 |
|
を実行すると、接続のテストを実行することができる。
public key の読み先が正しいかなども、確認することができる。
Git の使用する ssh-agent を登録する¶
コマンドプロンプトのテストなどでも正しく動いているし、Clone も正しく動いているが
それでも Permission Denied で VSCode で PUSH することができなかった。(ハマりポイント3)
どうやら、Git で上で指定した Windows の OpenSSH ではないものが使用されている場合
そもそも設定した SSH 設定が使われていないので接続できないようだった。
ので、Git の設定を変更して、Windows の OpenSSH を使用するようにする。
1 |
|
この設定をしたら、無事接続できた。
参考¶
ssh 接続でエラーがでてつながらない -> サービスが起動してない場合、フォルダがない扱いになる
config の設定
OpenSSH を使用する設定