導入
ローカルコンピュータからHetznerインスタンスに安全にアクセスするには、SSHキーの使用をお勧めします。このチュートリアルでは、新しいHetznerインスタンスでSSHキーを使用して安全なログインを設定する方法を説明します。.
パスワードは往々にして非常に脆弱です。パスワードの強度を高めると、パスワードを記憶するのが非常に困難になり、パスワードマネージャーの使用が不可欠になります。SSHキーは長さにも利点があり、最大4096ビットまで使用できます。また、ed25519規格に基づくECC(楕円曲線暗号)などの様々なアルゴリズムを使用することもできます。このチュートリアルでもECCを使用します。.
前提条件
- Hetznerクラウドアカウント
- HetznerプロジェクトとHetznerインスタンスを作成する権限
- ローカルコンピュータにssh-keygen、cat、nanoがインストールされている
ステップ1 – ローカルSSHキーを作成する
ローカルマシンにSSHキーを作成する必要があります。将来SSHキーを識別できるように、最後にコメントを追加することをお勧めします。コンピュータ自体に関する情報も役立つ場合があります。例えば:
SSHキー - MacbookPro 13インチ - [email protected]
ssh-keygen -t ed25519 -C "some comment here"
次に、SSHキーファイルの名前と場所を尋ねられます。デフォルトの名前(ed25519)と場所(/home/user/.ssh/)のままにする場合は、Enterキーを押してください。複数のサーバーで複数のキーを区別できるようにファイル名を変更したい場合は、「/home/user/.ssh/server01」と入力してください。userはユーザー名に置き換えてください。.
次に、サーバーのセキュリティを強化するために、パスワードを設定する必要があります。YouTube やインターネット上には、パスフレーズの追加を省略したり、推奨していないチュートリアルが多数あります。安全なインスタンスをセットアップするために、パスフレーズを設定することを強くお勧めします。このパスフレーズは秘密鍵を保護するため、たとえあなたのコンピュータにアクセスできる人でも、誰もサーバーにアクセスできません。毎回パスワードを入力しなくても済むように、SSH クライアントが keypass を使用して通信するように設定できますが、keypass は通常常にオンになっているため、ログインしたセッションに直接アクセスしても、その時点でサーバーへの不正アクセスを防ぐことはできないことに注意してください。ただし、これにより、誰かがファイルをコピーして別のコンピュータで使用することは保護されます。デフォルトでは、このコマンドは id_ed25519.pub と id_ed25519 という名前の公開鍵と秘密鍵を作成し、~/.ssh/ ディレクトリに保存します。 id_ed25519.pub ファイルは、サーバーがユーザーを認証するために必要な公開鍵です。一方、id_ed25519 ファイルは、特にパスフレーズの設定手順を省略した場合は、あなた以外の誰もアクセスできない秘密鍵です。.
ステップ2 – Hetzner Cloud ConsoleにSSHキーを追加する
ここで重要なのは、SSHキーはHetznerプロジェクト間で共有されないということです。つまり、新しいプロジェクトごとに同じキーまたは異なるキーを使用してこの手順を繰り返す必要があります。.
- プロジェクトを選択するか、新しいプロジェクトを作成します。
- プロジェクトの左側のメニューで、[セキュリティ] メニュー項目を選択します。
- 「SSH キーの追加」ボタンをクリックします。
- ローカル マシンで、コマンド cat /home/user/.ssh/id_ed25519.pub を実行してファイルの内容を表示するか、エディターで開きます。.
- [出力] を選択し、Ctrl + Shift + C を使用して、id_ed25519.pub ファイルの内容をローカル デバイスからクリップボードにコピーします。.
- SSHキーをHetznerアカウントの指定されたフィールドに入力します
- Hetzner Cloud Console で識別できるように SSH キーの名前を追加するか、キーの名前に基づいて自動的に生成された名前をそのままにします。.
- これで完了です。この特定の SSH キーは、この特定のプロジェクト用に新しいインスタンスを作成するたびに使用できるようになります。
ステップ3 – Cloud ConsoleでSSHキーを追加してHetznerインスタンスを作成する
- 前の手順で SSH キーを追加したプロジェクトの左側のメニューで、[サーバー] メニュー項目を選択します。
- 「サーバーの追加」ボタンをクリックします。
- 場所、オペレーティング システム、タイプ、その他の必要な設定を選択します。
- 「SSHキー」セクションで、前の手順で追加したSSHキーの候補をクリックしてください。キーフィールドがハイライト表示されます。
- 「作成して購入」をクリックしてサンプルを作成します。
ステップ4 – ローカルコンピュータからSSHキーを使用してログインをテストする
- HetznerのサンプルIPアドレスをコピーする
- まず、ローカルコンピュータにログインしてください。xxx.xxx.xxx.xxx を、作成したHetznerインスタンスのIPアドレスに置き換えてください。.
- フィンガープリントをknown_hostファイルに追加するには、「yes」と入力します。
- SSH キーに設定したパスフレーズを入力します。
- これで完了です。Ubuntu Hetznerのサンプルのウェルカムメッセージが表示されれば、プロセスは成功です。
ステップ5 – 以前に作成したサーバーにSSHキーを追加する
SSH キーを追加する前にサーバーを作成した場合、Cloud Console から SSH キーをサーバーに割り当てることはできません。.
本番環境へのSSH接続が失われないように、まずは新しいサーバーで試してみるのが最善です。数分で完了するので、サーバーをすぐに立ち上げて稼働させることができ、最悪でも数セントのコストで済みます。それでは、SSH鍵なしで新しいサーバーを作成し、以下の手順に従ってください。.
公開鍵ファイルの内容:
cat /home/user/.ssh/id_ed25519.pub
Ctrl+Shift+C で出力を選択します
次の方法でサーバーにログインします。
ssh root@server_ip
サーバーキーを書き込みます:
- ルートユーザーとして:
echo "keyfile_content" >> /root/.ssh/authorized_keys
- 他のユーザーと同様に:
echo "keyfile_content" >> /home/user/.ssh/authorized_keys
keyfile_contentを、先ほどコピーしたid_ed25519.pubの内容に置き換えます。userをユーザー名に置き換えます。
nano /etc/ssh/sshd_config
インストールされている場合は、nano を好みのエディターに置き換えることができます。.
パスワード ログインを無効にする場合は、PermitRootLogin の行を見つけて、次のように変更します。
PermitRootLogin prohibit-password
これにより、安全でないパスワードの使用が無効になり、SSH キーのみが受け入れられます。
SSH デーモンをリロードして新しい設定を有効にするには、次のコマンドを実行します。
systemctl restart sshd
SSHセッションを終了し、パスワードなしでアクセスしてみてください。ローカルの秘密鍵を保護するためにパスフレーズを設定している場合は、パスフレーズを入力する必要があります。.
これらの手順を慎重に実行し、すべてが計画どおりに動作している場合は、実稼働サーバーを続行し、テスト サーバーを再度削除できます。.
結果
安全かつ確実にHetznerインスタンスにログインできるようになりました。.









