SSHキーは、単なるパスワードへの依存とは対照的に、SSHを使用してサーバーにログインするための非常に安全な方法を提供します。パスワードは最終的に解読されるリスクがありますが、SSHキーを力ずくで解読することはかなり不可能です。実際のところ、キーペアを生成すると、公開キーと秘密キーに対応する2つの長い文字列がユーザーに提供されます。したがって、ユーザーは任意のサーバーに公開鍵を配置し、その後、すでに秘密鍵を所有しているクライアントに接続することで、サーバーのロックを解除できます。 2つのキーを一致させると、システムはパスワードに煩わしく依存することなくロックを解除します。秘密鍵をパスフレーズで保護することで、セキュリティをさらにスマートにファイアウォールで保護できます。
LinuxへのSSHキーのインストール-ステップバイステップガイド
以下に概説するのは、LinuxサーバーにSSHキーをインストールするプロセスの詳細を示すステップバイステップガイドです。
ステップ1:RSAキーペアの作成
インストールプロセスの最初のステップは、クライアントマシン上にキーペアを作成することです。これは、多くの場合、独自のシステムになります。ユーザーは次のコマンドを使用する必要があります:
ssh-keygen -o -b 4096 -t rsa
上記のコマンドは、ユーザーのSSHキーインストールプロセスを開始します。 -oオプションは、ssh-keygenに、古い(より互換性のあるPEM形式)ではなく、新しいOpenSSH形式で秘密鍵を保存するように指示します。新しいOpenSSH形式では、ブルートフォースパスワードクラッキングに対する耐性が向上しているため、-oオプションを使用することを強くお勧めします。 -oオプションがサーバーで機能しない場合(2014年に導入されました)、または古いPEM形式の秘密鍵が必要な場合は、コマンド' ssh-keygen -b 4096 -trsa<を使用します。 / em> '。
ssh-keygenコマンドの-bオプションを使用して、セキュリティ上の理由から、キーの長さをデフォルトの1024ビットではなく4096ビットに設定します。
プライマリGenKeyコマンドを入力したら、ユーザーは次のプロンプトに答えて次のドリルを実行する必要があります。
Enter the file where you wish to save the key (/home/demo/.ssh/id_rsa)
ユーザーはENTERを押す必要があります ファイルをユーザーのホームに保存するために
次のプロンプトは次のようになります。
Enter passphrase
管理者としてパスフレーズを割り当てたい場合は、プロンプトが表示されたら(上記の質問に従って)行うことができますが、これはオプションです。パスフレーズを割り当てたくない場合は、フィールドを空のままにしておくことができます。
ただし、独自のパスフレーズを入力すると、以下に示すさまざまなメリットが得られることに注意してください。
1.キーのセキュリティは、高度に暗号化されている場合でも、他の当事者からの不可視性に大きく依存します。 I 2.パスフレーズで保護された秘密鍵が許可されていないユーザーの管理下に置かれる可能性が高い場合、パスフレーズを解読できるようになるまで、ユーザーは関連するアカウントにログインできなくなります。これにより、被害者(ハッキングされたユーザー)は常にハッキングの入札を回避するための貴重な余分な時間を得ることができます。欠点として、キーにパスフレーズを割り当てるには、キーペアを使用するたびにキーを入力する必要があり、プロセスが少し難しくなります。退屈ですが、それでも絶対にフェイルセーフです。
エンドツーエンドのキー生成プロセスの概要は次のとおりです。
これで、公開鍵をリンク〜/ .ssh / id_rsa.pub
までたどることができます。秘密鍵(ID)をリンクにトレースできるようになりました-/home/demo/.ssh/id_rsa 3
ステップ2:公開鍵のコピー
個別のキーペアが生成されたら、次のステップは、使用する予定の仮想サーバーに公開キーを配置することです。ユーザーは、ssh-copy-idコマンドを使用して、公開鍵を新しいマシンのauthorized_keysファイルにコピーできます。以下に示すのは、ユーザー名とIPアドレスを入力するための所定の形式(厳密には例)であり、実際のシステム値に置き換える必要があります。
ssh-copy-id [email protected]
別の方法として、ユーザーはSSHを使用して(指定されたコマンドに従って)キーを貼り付けることができます:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "cat >> ~/.ssh/authorized_keys"
上記のコマンドのいずれかを使用すると、システムに次のメッセージが表示されます。
ホスト「192.168.0.100」の信頼性を確立できません。 RSAキーのフィンガープリントはb1:2d:32:67:ce:35:4d:5f:13:a8:cd:c0:c4:48:86:12です。接続を続行してもよろしいですか(はい/いいえ)?はい警告:既知のホストのリストに「192.168.0.100」(RSA)を恒久的に追加しました。 [メール保護]のパスワード:「ssh'[メール保護]'」を使用してマシンにログインし、〜/ .ssh/authorized_keysにチェックインして自分が追加していないキーが追加されていないことを確認します。期待しています。
上記のドリルの後、ユーザーはパスワードの入力を求められることなく、[メールで保護]にログインする準備が整います。ただし、以前にパスフレーズをキーに割り当てた場合(上記の手順2のように)、この時点で(およびその後のログインのたびに)パスフレーズを入力するように求められます。
ステップ3(このステップはオプション):ルートログインを容易にするためのパスワードの無効化
ユーザーがSSHキーをサーバーにコピーし、SSHキーのみを使用してシームレスにログインできるようにした後、ルートログインを制限し、SSHキーを介してのみ許可するオプションがあります。これを行うには、ユーザーは次のコマンドを使用してSSH構成ファイルにアクセスする必要があります。
sudo nano /etc/ssh/sshd_config
ファイルにアクセスしたら、ユーザーはファイル内で PermitRootLoginを含む行を見つける必要があります。 、SSHキーを使用した確実な接続を確保するために、同じものを変更します。次のコマンドはそれを行うのに役立ちます:
PermitRootLogin without-password
プロセスの最後のステップは、次のコマンドを使用して変更を実装するために残っています。
reload ssh
以上で、LinuxサーバーにSSHキーをインストールするプロセスは完了です。
OpenSSH秘密鍵を新しい形式に変換する
ほとんどの古いOpenSSHキーは、PEM形式で保存されます。この形式は多くの古いアプリケーションと互換性がありますが、パスワードで保護された秘密鍵のパスワードがブルートフォース攻撃で攻撃される可能性があるという欠点があります。この章では、PEM形式の秘密鍵を新しいOpenSSH形式の秘密鍵に変換する方法について説明します。
ssh-keygen -p -o -f /root/.ssh/id_rsa
パス/root/.ssh/id_rsa 古い秘密鍵ファイルのパスです。
上記の手順は、SSHキーを仮想プライベートサーバーに完全に安全で、安全で、手間のかからない方法でインストールするのに役立ちます。