AnyBucketがSSHの設定を使う仕組み

別途、鍵を登録する場所はありません。SFTPでは、AnyBucketはターミナルと同じプログラムである/usr/bin/sshを起動します。そのため:

  • ~/.sshにある秘密鍵が使えます。
  • SSHエージェントに読み込まれた鍵が使えます。
  • ~/.ssh/configのすべてのHostブロックが適用されます。HostName、User、IdentityFile、ProxyJumpも含まれます。
  • ホスト鍵は、ターミナルと共通の~/.ssh/known_hostsと照合されます。

目安はひとつです:ターミナルでssh user@hostが使えれば、AnyBucketでも使えます。サーバがパスワードを求める場合、パスワードはログインキーチェーンに保存されます。

鍵を作成してサーバに追加する

まだ鍵がない場合は:

  1. ターミナルを開き、ssh-keygen -t ed25519を実行します。returnキーを押してデフォルトのファイル~/.ssh/id_ed25519のままにし、パスフレーズを決めます。
  2. 公開鍵である~/.ssh/id_ed25519.pubを、サーバの~/.ssh/authorized_keysに追加するか、サーバの管理者に送ります。.pubの付いていないファイルは、決して共有しないでください。
  3. テストします:ssh user@hostで、サーバのパスワードを求められずにログインできるはずです。

毎回パスフレーズを入力しなくて済むように、ssh-addで鍵をエージェントに追加します。macOSでは、パスフレーズをキーチェーンに保存できます。

~/.ssh/configでサーバに名前を付ける

Hostブロックで、サーバに短い名前と接続のための設定を与えます:

Host staging
  HostName staging.example.com
  User deploy
  IdentityFile ~/.ssh/id_ed25519

これで、ssh stagingを実行すると、その鍵を使ってdeployとしてログインします。AnyBucketでSFTPでサーバstagingに接続しても、同じブロックが適用されます。AnyBucketは、ターミナルと同じようにその名前をsshに渡すからです。

踏み台サーバを経由して接続する

多くのサーバには、踏み台サーバ(ジャンプホスト、バスティオン)を経由しないと接続できません。ターミナルで一時的に接続するなら、ssh -J bastion appと入力します。これを常に使うには、ProxyJumpを設定します:

Host bastion
  HostName bastion.example.com
  User me

Host app
  HostName 10.0.1.20
  User deploy
  ProxyJump bastion

ターミナルでssh appを実行してテストします。ログインできたら、AnyBucketでSFTPでappに接続します。接続は自動的に踏み台サーバを経由し、アプリで追加の設定をする必要はありません。複数の踏み台を経由する場合も同じで、ProxyJumpのあとにコンマ区切りで並べます。

ホスト鍵:「まだ登録されていない」または「変わった」

サーバに初めて接続するとき、その鍵はまだ~/.ssh/known_hostsにないため、AnyBucketはターミナルと同じように、信頼する前に確認します。フィンガープリントを、サーバの管理者が公開しているものと照合してください。

鍵が変わったとAnyBucketに表示された場合は、いったん手を止めて理由を確認してください。サーバを再構築または再インストールしたあとなら、新しい鍵になるのは想定どおりです。そうでなければ、接続しないでください。鍵が変わっている場合、想定しているサーバと通信していない可能性があります。詳しくはトラブルシューティングをご覧ください。

うまくいかないときは

  1. まずターミナルで試す:AnyBucketで使っているのとまったく同じホスト名で試します(ssh staging)。失敗する場合、問題はアプリではなくSSHの設定にあります。
  2. -vを付ける:ssh -v stagingを実行すると、sshが試す鍵と設定の行がわかります。
  3. エージェントを確認する:ssh-add -lで、エージェントが保持している鍵が一覧表示されます。
  4. アクセス権を確認する:sshは、ほかのユーザが読み取れる秘密鍵を拒否します。chmod 600 ~/.ssh/id_ed25519で修正できます。

それでも解決しない場合は、SFTPの鍵や踏み台サーバが使えないをご覧いただくか、ssh -vの出力から個人的な情報を除いたものを添えて、サポートにメールでお問い合わせください。