読者です 読者をやめる 読者になる 読者になる

戦場のプログラマー

名前は誰も知らない。

HomebrewでインストールしたputtygenでPuTTY形式(ppk)のOpenSSH形式に変換しようとするとエラーになる

最近自分の中のナレッジを整理してる。
WindowsGUIでやるのもいいけど、ppk形式の鍵もコマンドラインでOpenSSH形式に変換できたほうがいいですよね、 というか、それしか選択肢がない日が絶対来ると思う。

ということでMacで puttygen コマンドで方法なんですが。
いつものようにHomebrewでインストールしようとしたらハマったのでメモ。

  • まずはインストール。
brew install putty

OpenSSH形式からPuTTY形式(ppk)に変換する方法

これはうまくいく

puttygen -O private secure-private-key.pem -o secure-private-key.ppk

PuTTY形式(ppk)からOpenSSH形式に変換する方法

% puttygen -O private-openssh test.ppk -o test.pem
Enter passphrase to load key:
Assertion failed: (random_active), function random_byte, file ./unix/../sshrand.c, line 313.
zsh: abort      puttygen -O private-openssh test.ppk -o test.pem

エラー。。。

This is a known issue in 0.63. You must brew with --HEAD to build from Putty's svn, which has a fix for the bug. Putty: puttygen: Assertion failed · Issue #25734 · Homebrew/homebrew

解決方法はいくつかあったけどあまりHomebrewのやり方から逸脱したくなかったので前者を採用。

% brew reinstall putty --HEAD                                                   (git)-[master]
==> Reinstalling putty
==> Installing dependencies for putty: halibut, automake
==> Installing putty dependency: halibut
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/halibut-1.0.mavericks.bott
######################################################################## 100.0%
==> Pouring halibut-1.0.mavericks.bottle.tar.gz
🍺  /usr/local/Cellar/halibut/1.0: 4 files, 1.0M
==> Installing putty dependency: automake
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/automake-1.14.1.mavericks.
######################################################################## 100.0%
==> Pouring automake-1.14.1.mavericks.bottle.tar.gz
🍺  /usr/local/Cellar/automake/1.14.1: 127 files, 2.5M
==> Installing putty
==> Checking out svn://svn.tartarus.org/sgt/putty
svn: E000060: Unable to connect to a repository at URL 'svn://svn.tartarus.org/sgt/putty'
svn: E000060: Can't connect to host 'svn.tartarus.org': Operation timed out
Error: Failed to download resource "putty"
Failure while executing: svn checkout -q --force svn://svn.tartarus.org/sgt/putty /Library/Caches/Homebrew/putty--svn-HEAD
[wnoguchi@noguchiwataru-no-MacBook-Pro] ~/Documents/repos/github/doc

つながらん・・・。

日を改めたらつながって再インストールできました。 たまにサーバ自体が死んでいて失敗するときもあるようだ。