Windows PowerShellでSSH Agentが死んでしまったとき

今日もWindows 8で開発するぞ!さっき突然再起動した気がするけどまあ気にしない。

いつも通りPowerShellを起動して、まずはgit pull

C:\Users\baba\workspace\myproject> git pull
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

…(・ω・)

お、落ち着いて、ssh myserver

C:\Users\baba> ssh myserver
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

…(・ω・)

どうやらこういうときはSSHの秘密鍵が認識されていないようなので、ssh-addをすると良いらしい。

C:\Users\baba> ssh-add .ssh/id_rsa
Could not open a connection to your authentication agent.

…(・ω・)

なんかSSH Agentがお亡くなりになってしまったようですね。

解決編

スクリプトをダウンロード
こんな良いgistがありました。
https://gist.github.com/markembling/187305
まずは、これをダウンロードして、適当な場所に置きます。今回はC:\Users\baba\ssh-agent-utils.ps1として配置。

スクリプト実行許可
PowerShellは、デフォルトでスクリプトを実行できないようになっているので、セキュリティ設定を変更します。管理者でPowerShellを起動し、以下のコマンド。

C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned

スクリプト実行を許可

スクリプトを実行
こっちは普通のPowerShellで良いです。最初のドットを忘れずに。

C:\Users\baba> . ssh-agent-utils.ps1
Starting SSH agent...
SSH agent PID: 10028

なんか反応が返ってこないことがありますが、Ctrl+Cで止めてもPIDが出てくればOKでした。

SSH鍵を改めて登録

C:\Users\baba> ssh-add .ssh/id_rsa
Identity added: .\.ssh\id_rsa (.\.ssh\id_rsa)

これで、無事にSSH接続できるようになりました ヘ(^o^)/

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

baba

ゆとりプログラマー。 高校時代から趣味でプログラミングを初め、そのままコードを書き続けて現在に至る。慶應義塾大学環境情報学部(SFC)卒業。BPS設立初期に在学中から参加している最古参メンバーの一人。得意分野はWeb全般、Ruby on Rails、Androidアプリケーションなど。最近はBlinkと格闘中。軽度の資格マニアで、情報処理技術者試験(高度10区分)などを保有。

babaの書いた記事

週刊Railsウォッチ

インフラ

Rubyスタイルガイドを読む

BigBinary記事より

ActiveSupport探訪シリーズ