Tech Racho エンジニアの「?」を「!」に。
  • 開発

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がありました。

まずは、これをダウンロードして、適当な場所に置きます。今回は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^)/


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。