SSHキーについて
SSHキーは、パスワードのみを使用するよりも、SSHを使用して仮想プライベートサーバーにログインするためのより安全な方法を提供します。パスワードは最終的にブルートフォース攻撃で解読される可能性がありますが、SSHキーをブルートフォースだけで解読することはほぼ不可能です。キーペアを生成すると、公開キーと秘密キーの2つの長い文字列が提供されます。公開鍵は任意のサーバーに配置し、秘密鍵を既に持っているクライアントに接続してロックを解除できます。 2つが一致すると、システムはパスワードを必要とせずにロックを解除します。パスフレーズで秘密鍵を保護することで、セキュリティをさらに高めることができます。
このガイドは、主にDigitalOceanの人々によって書かれました。 digitalocean.comで、コスト競争力のある優れたサーバーオプションを確認してください
ステップ1-RSAキーペアを作成する
最初のステップは、クライアントマシンでキーペアを作成することです(これがあなたのコンピュータになる可能性が高いです):
ssh-keygen -t rsa
ステップ2—キーとパスフレーズを保存する
Gen Keyコマンドを入力すると、さらにいくつかの質問が表示されます。
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
ここでEnterキーを押して、ファイルをユーザーホームに保存できます(この場合、私の例のユーザーはデモと呼ばれます)。
Enter passphrase (empty for no passphrase):
パスフレーズを使用するかどうかはあなた次第です。パスフレーズを入力することには利点があります。キーのセキュリティは、暗号化されていても、他の人には見えないという事実に依存します。パスフレーズで保護された秘密鍵が許可されていないユーザーの所有物に陥った場合、パスフレーズを理解し、ハッキングされたユーザーを購入するまで、関連するアカウントにログインできなくなります。もちろん、パスフレーズを使用することの唯一の欠点は、キーペアを使用するたびにパスフレーズを入力する必要があることです。
キー生成プロセス全体は次のようになります。
ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/demo/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/demo/.ssh/id_rsa. Your public key has been saved in /home/demo/.ssh/id_rsa.pub. The key fingerprint is: 4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a The key's randomart image is: +--[ RSA 2048]----+ | .oo. | | . o.E | | + . o | | . = = . | | = S = . | | o + = + | | . o + o . | | . o | | | +-----------------+
公開鍵は/home/demo/.ssh/id_rsa.pubに配置されました秘密鍵(ID)は/home/demo/.ssh/id_rsaに配置されました
ステップ3—公開鍵をコピーする
キーペアが生成されたら、使用する仮想サーバーに公開キーを配置します。
ssh-copy-idコマンドを使用して、公開鍵を新しいマシンのauthorized_keysファイルにコピーできます。以下のユーザー名とIPアドレスの例を必ず置き換えてください。
ssh-copy-id [email protected]
または、SSHを使用してキーを貼り付けることもできます:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
どのコマンドを選択しても、次のように表示されます。
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established. RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts. [email protected]'s password: Now try logging into the machine, with "ssh '[email protected]'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
これで、先に進んで[email protected]にログインでき、パスワードの入力を求められることはありません。ただし、パスフレーズを設定すると、その時点で(および今後ログインするたびに)パスフレーズを入力するように求められます。
オプションのステップ4—ルートログインのパスワードを無効にする
SSHキーをサーバーにコピーし、SSHキーのみでログインできることを確認したら 、先に進んで、ルートログインをSSHキー経由でのみ許可されるように制限できます。
これを行うには、SSH構成ファイルを開きます。
sudo nano /etc/ssh/sshd_config
そのファイル内で、PermitRootLogin
を含む行を見つけます ユーザーがSSHキーでのみ接続できるように変更します:
PermitRootLogin without-password
変更を有効にします:
service openssh-server restart