Jul 30, 2013

SFTP on Transmit

いい加減Cyberduckの遅さには耐えられないということで、Mac App StoreでTransmitというFTP + SFTP + S3 + WebDAVクライアントを購入した。

速さを売りにするだけに確かに速い。

ところで、TransmitのGUIでは、SFTPで公開鍵暗号方式を使うときに秘密鍵の形式に制限があり、サポートされていない鍵形式のファイルを読み込もうとすると、「SSH認証ファイルを読み込めませんでした。ファイルは未サポートの形式です。」と言われて、登録できない。

私が試した範囲で使えたのは以下の形式だけである。

  • 暗号化されていない秘密鍵
  • DES-EDE3-CBCで暗号化された秘密鍵(Windowsのputtygen.exeでOpenSSH用の秘密鍵を生成するとこの形式になる)

つまり、Mac OS Xなどに付属しているOpenSSH系のssh-keygenでパスフレーズ付きの秘密鍵を作るとAES-128-CBCで暗号化されるため、TransmitのGUIを用いると登録できないことになる。これでは使い物にならない。

しかし、以下の手順を踏めばこの問題を回避することができる。

  1. Keychainにパスフレーズ、ssh-agentに秘密鍵を記憶させるために以下のコマンドを実行する。
    $ ssh-add -K ~/.ssh/id_rsa_for_example_com
    
  2. 次に、ホスト名と秘密鍵ファイルの対応を~/.ssh/configに記述する。
    Host example.com
         HostName example.com
         IdentityFile ~/.ssh/id_rsa_for_example_com
    
  3. この状態で、TransmitのGUIで「サーバ」「ユーザ名」を(必要に応じて「パス」「ポート」も)入力して「接続」する。

察しの良い人はとうにお気づきだろうが、一組の鍵ペアをあらゆる場所で使い回していて、たまたまssh-agentに秘密鍵、Keychainにパスフレーズを覚えさせていた場合には、何も設定しなくても最後の手順だけで接続できる。

またこの仕様は同社のCodaというテキストエディタのファイルブラウザ機能にもおそらく共通だと推定される。

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com