LoginSignup
7
11

More than 5 years have passed since last update.

Windows 上にある秘密鍵を、WSL 上の git から使うメモ

Last updated at Posted at 2018-05-08

git で使う秘密鍵を、Windows と WSL で共有するときのメモ。
これをやっておくと、Windows と WSL のそれぞれの git コマンドで、秘密鍵をバラバラに管理しないで済む。

前提

秘密鍵は、Windows 上の C:\Users\<Windowsでのユーザ名>\.ssh\id_rsa に配置する。
この秘密鍵は、WSL からは /mnt/c/Users/<Windowsでのユーザ名>/.ssh/id_rsa として見える。

この秘密鍵を WSL 上の git から参照する。

git@WSL の設定

ターミナルは bash を使っているので、.bashrc に追記。

.bashrc
# git が使う ssh コマンドの設定
# ここで Windows 上の秘密鍵を指定
export GIT_SSH_COMMAND="ssh -i /mnt/c/Users/<Windowsでのユーザ名>/.ssh/id_rsa"

ほぼ、これだけ。

ちなみに、上の設定は git コマンドで使う秘密鍵だけを共有する場合で、もし git に限らず ssh コマンド全般に共有したければ、シンボリック リンクを作った方が楽かも。

秘密鍵のパーミッションで怒られた時の呪文

Windows 10 April 2018 Update を適用したタイミングから、秘密鍵のパーミッションで怒られるようになった気が知る。

パーミッションとオーナーを変更するためのコマンド

# 一度 Windows のボリューム?をアンマウント
$ sudo umount /mnt/c

# パーミッション管理用のメタデータが利用できる形で再マウント
$ sudo mount -t drvfs C: /mnt/c -o metadata

# 秘密鍵のオーナーを設定
$ sudo chown ${USER} /mnt/c/Users/<Windowsでのユーザ名>/.ssh/id_rsa

# 秘密鍵のパーミッションを変更
$ sudo chmod 600 /mnt/c/Users/<Windowsでのユーザ名>/.ssh/id_rsa
7
11
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
7
11