アクセスの詳細と復旧経路を収集する
実際のサーバーアドレス、SSH ポート、ログインユーザー名、初期認証方法、およびサーバーのホストキーフィンガープリントの信頼できる情報源が必要です。コンフィギュレーターで選択したホスト名は DNS を確立したりアカウントを作成したりしません。これらの詳細は、Linux イメージに関する仮定ではなく、実際のサービス設定から取得してください。
コンソールまたはレスキュー環境に到達する方法と、誰がアクセスを復旧できるかを確認します。今すぐその復旧経路を開けることを確認してください。ロックアウト中に権限や復旧資格情報が不足していることに気づかないようにしてください。独立した復旧経路が利用できない場合は、準備が整うまでアクセス設定を変更しないでください。
例では、自分のコンピューター上の Bash クライアントターミナルと Ubuntu/Debian サーバーを使用します。実際の詳細を以下に置き換えてください: builder、ポート 22 と 192.0.2.10。これは予約済みのサンプルアドレスです。コマンドはお使いの環境向けに確認する手順です。このガイドは OffVPS サーバーに接続したり設定したりしていません。
既存のものを置き換えずにクライアントキーを作成する
秘密キーはクライアントコンピューター上に残ります。対応する公開キーはサーバーアカウントの authorized keys にインストールできます。どちらもサーバーのホストキーではありません。その別個のキーは、接続しているマシンを識別するのに役立ちます。秘密キーとそのパスフレーズは、サポートメッセージ、リポジトリ、サーバーへのアップロードに含めないでください。
ssh -V
ls -ld "$HOME/.ssh"
ls "$HOME/.ssh/offvps_first_vps" "$HOME/.ssh/offvps_first_vps.pub"
まずパスを確認します。SSH ディレクトリが存在しない場合は、パーミッション 700 で作成します。指定したキーファイルのいずれかが既に存在する場合は、別の名前を選ぶか、意図的に既存のキーを再利用してください。上書きしないでください。パスフレーズ付きの専用キーを生成します:
ssh-keygen -t ed25519 -f "$HOME/.ssh/offvps_first_vps" -C "first-vps"
ssh-keygen -lf "$HOME/.ssh/offvps_first_vps.pub" -E sha256
2番目のコマンドは公開キーのフィンガープリントを表示するもので、秘密キーの素材ではありません。 ssh-keygen マニュアル は、キーの種類、出力ファイル、フィンガープリントについて説明しています。マネージドデバイスが異なるキーポリシーを要求する場合は、そのポリシーに従い、サーバーのサポートを確認してください。復旧計画が秘密キーに依存する場合は、適切に保護された復旧コピーを保管してください。
認証前にサーバーを検証する
信頼できるコンソールまたは別の認証済みセットアップチャネルを通じて、サーバーの Ed25519 ホストキーのフィンガープリントを取得します。標準の OpenSSH パスを使用するサーバーでは、管理者が次のように公開ファイルを確認できます:
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256
SHA256 フィンガープリントとアルゴリズム全体を、最初の SSH 接続プロンプトと比較します。同じ未検証のネットワーク接続を通じてのみ取得したフィンガープリントは、独立した検証ではありません。サーバーが別のホストキーアルゴリズムを提供する場合は、異なる値を比較するのではなく、そのキーのフィンガープリントを取得してください。 OpenSSH のホストキー検証ガイダンス がこの比較について説明しています。
後の訪問でキーが予期せず変更した場合は、停止してください。再構築によってホストキーが正当に置き換わることもありますが、そのイベントと新しいフィンガープリントを復旧チャネルを通じて検証してください。接続を成功させるためだけに警告を無視したり、古い known-host エントリを削除したりしないでください。
公開キーのみをインストールし、最初のセッションを開く
公開キーが承認済みのセットアッププロセスを通じて既にインストールされている場合は、直接接続します。そうでない場合は、既存の検証済みアクセス方法を使用して、意図したアカウントに公開キーを追加します。 ssh-copy-idを持つクライアントで、その初期ログイン方法が機能する場合に限り、このコマンドは選択した公開キーを追加します:
ssh-copy-id -i "$HOME/.ssh/offvps_first_vps.pub" -p 22 [email protected]
Ubuntu の OpenSSH ガイド は公開キーのインストールとパーミッション要件について説明しています。 authorized_keys ファイル全体を置き換えたり、別の管理者のエントリを変更したりしないでください。次に、キーベースのセッションを開きます:
ssh -o IdentitiesOnly=yes -i "$HOME/.ssh/offvps_first_vps" \
-p 22 [email protected]
ログイン後、 id と hostnameを確認します。アカウントがセットアップの詳細と一致することを確認してください。ホスト名だけではホストキーの検証にはなりません。タスクに管理が必要な場合は、 sudo -v を実行し、このアカウントに意図した権限経路があることを確認します。この最初のセッションは開いたままにしてください。
真に別個の2回目のログインを証明する
別のクライアントターミナルを開き、SSH 接続共有ソケットを再利用できない新しい接続を要求します。このテストを公開キー認証に限定し、パスワードへのフォールバックが壊れたキー設定を隠さないようにします:
ssh -o ControlMaster=no -o ControlPath=none \
-o IdentitiesOnly=yes -o PreferredAuthentications=publickey \
-i "$HOME/.ssh/offvps_first_vps" -p 22 [email protected]
確認 id, hostname および、必要に応じて sudo -v をこの2番目のセッションでも使用します。クライアントが既存の接続を再利用する場合、新しいターミナルだけでは不十分です。 ControlPath=none はその共有を無効にします。 OpenSSH クライアント設定を参照してください。この独立した接続が成功し、復旧経路が利用可能なままである場合にのみ、元のセッションを閉じてください。
以降のアクセス変更の前に
この最初のセッションでは、SSH ポート、認証方法、ファイアウォールルールをそのままにします。後で変更する前に、現在の設定を保存し、信頼できるコンソールを通じて復元する方法を文書化してください。別の方法を無効化する前に、動作するキーログインを確認してください。一度に1つのレビュー済み変更を行う間、最初のセッションは開いたままにしてください。
sudo /usr/sbin/sshd -t
sudo /usr/sbin/sshd -T
この OpenSSH 実行可能パスを持つシステムでは、 -t は設定構文とホストキーの健全性をチェックし、 -T は有効な設定も報告します。接続固有の Match ルールには、テスト対象のアカウントとアドレス用の -C パラメータが必要な場合があります。これらのチェックはファイアウォールの到達性をテストしたり、新しいログインが機能することを証明したりするものではありません。 sshd テストモードを参照してください。サービス設定を適用またはリロードする前にエラーを解決し、その後、独立したログインチェックを繰り返してください。
失敗を利用して次のチェックを選ぶ
- タイムアウト: 復旧経路を通じてアドレス、ポート、プロバイダールール、ホストファイアウォールを確認してください。
- 接続拒否: SSH が期待されるアドレスとポートでリッスンしているか確認してください。
- アクセス拒否: 開いたままのセッションからユーザー名、選択した公開キー、アカウントのキーファイルパーミッションを確認してください。
- ホスト識別が変更されました: 続行する前に、マシンと新しいフィンガープリントを独立して検証してください。
検証済みのホストキーフィンガープリント、アカウント、ポート、復旧手順を運用ノートに記録します。キー素材は非公開に保ってください。アクセスが再現可能になったら、次に進みます: 最初の API リリース または アプリケーションのリソース予算.
使用したドキュメント
このページの主な参照資料。ご自身の環境にインストールされているバージョンのドキュメントを確認してください。