SSH鍵とKnown Hosts
鍵
[SSH Keys]では、~/.ssh配下の秘密鍵と公開鍵、フィンガープリント、アルゴリズム、保存先を確認できます。鍵の生成、名前変更、グループ間の移動、パスフレーズの編集、公開鍵のコピー、ssh-agentへの追加に対応しています。
[SSH Keys]で生成する鍵は、グループを選ばなければ~/.ssh直下、グループを選んだ場合は~/.ssh/keys/<group>/へ保存されます。既存の鍵をグループへ移動した場合も、同じ構造に合わせて保存先が変わります。接続設定のIdentityFileに存在しないパスを指定すると、接続前の鍵読み込みでエラーになります。
ゴミ箱
鍵の「…」の[ゴミ箱へ移動]は、鍵を消さずに~/.ssh/sshc/trash/へ移します。公開鍵や証明書など、同じ鍵に属するファイルもまとめて移ります。移す前に、その鍵を参照しているHostブロックの数を表示します。移したあともIdentityFileの行は残るので、その接続では鍵が見つからず、sshはほかの認証方法を試します。
グループの一覧の[ゴミ箱]から、移した鍵を元の場所へ復元するか、完全に削除できます。元の場所に同じ名前のファイルがあるときは復元できません。ゴミ箱の鍵は自動では消えません。30日を超えたものには、その印が付きます。
接続でIdentityFileを読む規則
接続するときは、IdentityFileの値をOpenSSHと同じ規則で展開してから鍵を開きます。
- 先頭の
~と~/は、ホームフォルダに置き換えます。 ${HOME}のような${環境変数}は、sshcエンジンの環境変数の値に置き換えます。%h(接続先のホスト名)、%r(リモートのユーザー名)、%p(ポート)、%n(エイリアス)、%d(ホームフォルダ)、%C(%l%h%p%r%jのハッシュ)などのトークンは、接続先ごとに置き換えます。
次の形のIdentityFileは、鍵として使いません。接続は続け、ほかの鍵や認証方式を試します。
id_workのような相対パス。OpenSSHはsshを起動したフォルダから開きますが、sshcの接続にはそのフォルダがありません。~/.ssh/id_workのように書き直してください。~other/.ssh/id_workのような、ほかのユーザーのホームフォルダ%Tのような、sshcが展開しないトークン- 値の無い環境変数を指す
${NAME}
[Settings]→[Terminal]の[接続のログ]を[鍵・経由ホスト・所要時間(-vv)]以上にすると、使わなかった鍵と理由が、適用しない設定として接続ログに表示されます。sshc info <alias>にはnotice identityfileの行が表示されます。
暗号化同期では、IdentityFileから参照されている鍵だけを選ぶのではなく、同期対象から除外していない~/.ssh配下の通常ファイルを対象にします。対象となる秘密鍵は、ほかの同期データと一緒にこのマシン上で暗号化してから送信されます。[Sync]→[同期するファイル]または.sshcignoreで、実際の対象を確認してください。
サーバーへ公開鍵を登録
[Remote Keys]では、~/.sshにある公開鍵を選び、1台以上の接続先のauthorized_keysへ追加できます。接続前に、使用する公開鍵、接続ユーザー、追加先を確認します。
Known Hosts
Known Hostsでは、ホスト、アルゴリズム、フィンガープリントなどで並べ替えられます。未登録のホスト鍵は接続時に確認し、保存済みの鍵が変わっていても自動では上書きしません。
ハッシュ化したエントリー(HashKnownHosts yesで書いたもの)は、ホスト名を読み戻せません。保存した接続先の鍵であれば、その接続先の名前を「bastion(ハッシュ済み)」のように表示します。接続先の名前は、接続のときに鍵を探すのと同じ名前(HostKeyAlias、またはHostNameとポート)で照らし合わせます。
WARNING
フィンガープリントが変わった理由を確認できるまで、古いエントリーを削除しないでください。