Windows用高機能エディタ「Notepad++」には、エディタ内から直接サーバーに接続してファイルの削除やリネーム、編集を行うことができるプラグイン「NppFTP」が付属しています。(参考:Notepad++のFTPプラグイン「NppFTP」の設定方法)
じつはこの「NppFTP」では通常のFTP以外にも、FTPS(FTP over SSL)、さらにSFTP(SSH)にも対応しています。
しかし先日、契約しているVPSにSSH接続(公開鍵認証)で繋ごうとしたところ、下記のようなエラーが出て接続が行えませんでした。
[NppFTP] Everything initialized
Connecting
[SFTP] Host key accepted
[SFTP] Error during authentication: Invalid private key file.
Unable to connect
Disconnected
「Invalid private key file」という部分から察するに、どうも秘密鍵の認証が上手くいっていないようです。しかし、この秘密鍵は通常はSSHクライアントのPoderosaで問題なく認証が通っているファイルです。
で検索してみたところ、ある情報にたどりつきました。
If it says Invalid private key file, the key probably isn’t an OpenSSH key
・NppFTP not working via SSH – sourceforge
つまりNotepad++でのSSH接続には、秘密鍵がOpenSSH形式である必要があるとのことです。
Poderosaで使っている秘密鍵は独自形式のため、これをOpenSSH形式に変換する必要があります。変換については、Putty付属のツール「puttygen.exe」を用いるのがもっとも簡単だと思います。これについては以下の記事が参考になりました。
・poderosaの秘密鍵をOpenSSH形式に変換する – (゚∀゚)o彡 sasata299’s blog
上記記事の手順に従い、秘密鍵をインポートして変換後、メニューバーからOpenSSH形式でエクスポートすることで新しい秘密鍵が作成できます。
これを用いてNotepad++からの接続を試したところ、正常に認証がとおり接続可能となりました。