7
14

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.

Windows Subsystem for Linux で ssh-agent を使う

Posted at

前回のおさらい

https://qiita.com/wing-tail/items/22f2c74b4cfdde05bc2b
WSL + hyper でゴキゲンな Linux 開発環境を手に入れた!

概要

Windows 10 Spring Creators Update (1803) でデフォルト導入されるようになった OpenSSH クライアントは、WSL からだとバグで動かなかった。
しかし、Windows 10 October 2018 Update (1809) にて直ったので、自動起動設定をしておくと作業が捗る。

前提

スタート → 設定 → システム → バージョン情報から「Windows の仕様」を確認。
バージョンが1809ならOK.
違っていたら、スタート → 設定 → 更新とセキュリティ → Windows Updateから「更新プログラムのチェック」で更新する。

方針

.bashrc に ssh-agent と ssh-add の実行を記載する。
ただし、ssh-agent による PID 等の設定をファイルに出力してやって固定化する。
これによってクライアントでシェルを複数起動した場合でも1つの ssh-agent を共有できる。
つまり、screen などを利用した際に ssh-agent が乱立することはなくなる。

設定内容

SSH_AGENT_FILE="$HOME/.ssh/ssh_agent"

# 固定化された ssh-agent 設定が存在すれば、それを読み込んで
# 既に起動している ssh-agent プロセスを再利用
[ -f $SSH_AGENT_FILE ] && source $SSH_AGENT_FILE >& /dev/null

# ssh-add がエラーを返すなら、ssh-agent プロセスが存在しないものとして
# これを起動しつつ、設定をファイルに出力
if ! ssh-add -l >& /dev/null ; then
    ssh-agent > $SSH_AGENT_FILE
    # ssh-agent の設定内容を標準出力してほしいなら、/dev/null へ投げなくても良い
    source $SSH_AGENT_FILE >& /dev/null
    # $HOME/.ssh 配下にある id_rsa という名前のファイルを ssh-add
    find $HOME/.ssh -name id_rsa | xargs ssh-add
fi

注意点としては、screen の自動起動なども設定していた場合に、それより前に ssh-agent の設定を記載すること。
まあ、プロセス進行を考えれば当たり前の話だけど。

あと、秘密鍵の命名規則によって、ssh-add している箇所の記述は微調整が必要になる。
$HOME/.ssh/hogehoge/id_rsa に統一して、hogehoge の部分を適宜変更するフォルダ単位の管理が、個人的にはベストだと思ってる。

結果

WSL(hyper)起動時に秘密鍵のパス入力したら、Windows をシャットダウンするまで、パス入力しないで秘密鍵を使えるようになった!

7
14
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
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?