5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VSCodeのRemote-SSHを使っている時、gitで同期ができない問題

Last updated at Posted at 2019-07-03

VSCodeのRemote-SSHを使っている時、gitで同期ができない問題

問題

VSCode上のターミナルではgitでPullやPushはできるが、VSCode上からPushなどをおこおうとすると、

Git: Permission denied(publickey).

image.png

と表示されてしまう。

環境

ちなみに私の環境はgitlabにRaspberryPiに接続したWindowsマシンのVSCode上でgitを行おうとしていた。

原因

2019/07/03 現在、VSCode公式が近い問題を既存の問題としてあげていた

コメント 2019-07-03 234849.jpg

私の場合、SSHキーにパスフレーズは登録していないが、何をやってもVSCode上からはPullもPushもできなかったため、バグであると納得することにした。

###追記:2019/07/04
と、思ったが、ターミナル上でssh-agentが起動しないことを不審に思い、

eval 'ssh-agent'

とやったが、裏で実行されるが、その後の

ssh-add -l

をするとssh-agentが起動されてない旨のメッセージがでてしまっていた。

解決策

そのssh-agentを起動する方法を

eval $(ssh-agent)

とすると、しっかり起動できるようになり、

ssh-add [秘密鍵のパス]

とすれば鍵が登録され、VSCodeからもgitが使えるようになる

ただ、実行する度にプロセスが増えてしまうため、
1つのプロセスを複数のBashから利用するために

ここのサイトに書かれているコードを.bashrcに追記すると良いと思う。
ちなみに、.bashrcのコードは、ダブルクォーテーションが「“ ”」これになっているため、「" "」に直さないとエラーがでるので気を付けて欲しい。

また、.bashrcに追記するコードの11行目と23行目の

ssh-add

だが、これだけだと、
https://euske.github.io/openssh-jman/ssh-add.html
ここに書いてある通り、引数が無しのため、.ssh内の「id_rsa」,「id_dsa」,,,などなどの決まった名前のファイルしか読み込まないため、
秘密鍵のファイル名を変更している場合には、この11行目と23行目に引数としてファイルのパスを追記してあげると良いと思う。

参考

.bashrc, .bash_logoutソースコード
http://kurokawh.blogspot.com/2012/07/linuxcygwin-ssh-agent.html
ssh-add
https://euske.github.io/openssh-jman/ssh-add.html

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?