Transmit 5.6.4からSSH認証方法が変更されました

Panicではバグを修正する際は常に、使いやすさやセキュリティの向上とバランスを取りながら行っています。バージョン5.6.4では、いくつかのバグを修正しつつ、セキュリティを向上させるための変更も行いました。これに伴い、このバージョン以降のTransmitではパスワードがお気に入りに保存される前に、サーバに関連付けられている認証鍵を使用する様にしました。

認証鍵とは何でしょう?これはコンピュータとサーバに固有の"スーパーなパスワード"とも言うべきファイルです。認証鍵による認証の方がパスワードによる認証よりも安全であるため、Transmitはサーバへのログイン時にこの認証鍵の使用を優先するようになりました。

SFTPサーバに接続する際、以下の様にSSH認証鍵のパスフレーズの入力を求められる場合があります:

SSH Key Passphrase Prompt

また別の可能性として、トランスクリプトログにAuthentication Failedエラーが記録されるかも知れません。

その様な場合は意図したかどうかに関わらず、SSH configファイルにこの接続用の定義された認証鍵が存在することを表しています。

SSH Configファイルの正確性を確認する

以下の様にして、任意のテキストエディタでConfigファイルを開きます:

  1. Finderの移動メニューからフォルダへ移動...を選択する
  2. 現れたドロワーで以下を入力し、移動ボタンを押す: ~/.ssh
  3. configファイル上でコンテキストメニューを表示し、エディタを指定して開く

Hostエントリにおけるワイルドカード (*) の使用はあまり理想的では無く、以下はGithubのドキュメントで指示されている設定ですが、この様なケースで暗号化された認証鍵が使用されているとTransmitはパスフレーズの入力を要求する様になります:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

すべてのアドレスに対して定義されているため、すべてのSFTP接続でSSH認証鍵のパスフレーズの入力ダイアログが表示される様になります。

これはコマンドラインから接続する場合も同様で、Transmitと同じ様にパスフレーズの入力を求められます。

理想的にはホスト欄にワイルドカードを使用せず、指定した認証鍵が実際に利用されるサーバアドレスのみを記述します。先のGithubの例を使用すると、Configファイルは以下の様になります:

Host github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

こうすることでTransmitはgithub.comに接続する際にパスフレーズを要求するだけになります。

もし複数の任意のアドレスのため意図的にワイルドカードを利用していた場合、それらをすべてスペースで区切ることで追加が可能です。以下に例を示します:

Host github.com mysite.com myserver.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

これらの変更はConfigファイルのHostエントリに対してのみであることにご注意ください。すべてのワイルドカードに対してではありません。

その他、Transmitや弊社のアプリにおけるSSH認証鍵の取り扱いについての詳細はこちらをご参照ください