VSCode Remote Development
2019-09-13に投稿

[Windows] VSCode で使うssh-agentについて

sshでログインしたリモートlinuxマシンからgithubアクセスしようと思うと、githubに登録した秘密鍵が必要なんだけど、秘密鍵を複数のマシン上においておきたくはないよね。

なので、ssh-agentというのを使って、自分のPC上にある秘密鍵を登録しておけば、リモートマシン内に鍵がなくてもgithubアクセスができる、というのが一般的なssh-agentの説明。

じゃあそれをWindowsでやろうとするとどうなんの?特に、VSCodeでremote developmentを使ってリモートにログインしているとき、ちょとgit clone したかったり、コミットしたけどgit pushだけWSL立ち上げないとできないみたいな悲しい状態はさけたい。

OpenSSH for Windows

いにしえの昔には、フリーソフトでPuttyというのがあってこれでssh-agentが実現されていたりしたのだけれど、2019年の世界では、OpenSSH for Windowsを使う。インストール手順

で、このドキュメントの続きにあるOpenSSH Key Managementを読むと、こんな感じで、powershell上でssh-agent(を含むssh-utils)をインストールすることになっている

# Install the OpenSSHUtils module to the server. This will be valuable when deploying user keys.
Install-Module -Force OpenSSHUtils -Scope AllUsers

# Start the ssh-agent service to preserve the server keys
Start-Service ssh-agent

# Now start the sshd service
Start-Service sshd

でもこれ残念ながらぼくの環境ではうまく入らなかった

image.png

のだけど、そもそもWindows10にssh-agentが含まれているぽくて(?)、コントロールパネルから有効化したら普通に使えるようになった

image.png
image.png

んでpowershellから公開鍵を登録する

PS C:\Users\mogya> ssh-add C:\Users\mogya\.ssh\id_ed25519
Identity added: C:\Users\mogya\.ssh\id_ed25519 ([email protected])

すると、VSCode Remote developmentのコンソール上でもssh-agentが効いた状態でsshアクセスができるようになる

daisuke@linode17:~/develop$ ssh -T [email protected]
Hi mogya! You've successfully authenticated, but GitHub does not provide shell access.

daisuke furukawa

おひるねのできるフリーランサー。「モバイラーズオアシス」の中の人でもあります。

VSCode Remote Development
所有者限定モードのためこのボードには投稿できません
コメント
VSCode Remote Development