SSHは「SecureShell」の略で、ログインしてリモートサーバーを管理するために使用される暗号化されたプロトコルです。 SSHは、さまざまな認証メカニズムもサポートしています。 SSHは、パスワードベースの認証と公開鍵ベースの認証を使用して、クライアントとサーバー間の安全な接続を実現します。 SSHキーベースの認証は、パスワードベースの認証よりも安全です。これは、現在利用可能なコンピューティング能力を使用してキーを推測したり解読したりすることが非常に難しいためです。
このチュートリアルでは、Ubuntu18.04サーバーでSSHキーベースの認証を設定する方法を示します。
前提条件
- Atlantic.Netクラウドプラットフォーム上の2つの新しいUbuntu18.04VPS。
- 両方のサーバーで構成されたルートパスワード。
ステップ1–Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてUbuntu18.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
Ubuntu 18.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y apt-get upgrade -y
ステップ2–クライアントマシンでSSHキーを生成する
まず、クライアントマシンにログインし、次のコマンドを実行して新しいSSHキーペアを生成します。
ssh-keygen -t rsa
Enterを押す必要があります 以下に示すように、デフォルトのファイルの場所を受け入れ、セキュリティの層を追加するためのパスフレーズを提供します。
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: cd:58:c4:35:60:6f:a4:2e:f0:b7:42:c5:20:78:86:b2 [email protected] The key's randomart image is: +--[ RSA 2048]----+ | o. ..+o+ | | . o o. =.+ . | | o o. = o | | E o B . | | S = | | . o . | | . . | | . | | | +-----------------+
上記のコマンドは、許可されていないユーザーがログインするのを防ぐために、安全なパスフレーズを使用して2048ビットのRSAキーペアを生成します。
次のコマンドを使用して、生成された公開鍵と秘密鍵を確認できます。
ls -l .ssh/id_rsa*
次の出力が表示されます。
-rw------- 1 root root 1766 Nov 1 11:03 .ssh/id_rsa -rw-r--r-- 1 root root 401 Nov 1 11:03 .ssh/id_rsa.pub
この時点で、Ubuntuサーバーでの認証に使用できる公開鍵と秘密鍵があります。
ステップ3–公開鍵をUbuntuサーバーにコピーする
次に、公開鍵をクライアントマシンからUbuntu18.04サーバーにコピーする必要があります。以下に示すように、ssh-copy-idユーティリティを使用して公開鍵をコピーできます。
ssh-copy-id [email protected]
次の出力が表示されます。
The authenticity of host '192.168.0.102 (192.168.0.102)' can't be established. ECDSA key fingerprint is f7:9c:72:63:33:ac:d6:49:26:9c:af:c6:ff:11:27:01. Are you sure you want to continue connecting (yes/no)? yes
「はい」と入力します 」と入力し、 ENTERを押します 続ける。次の出力が表示されます。
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password:
次に、リモートのユーザー名とパスワードを入力するように求められます。認証が成功すると、公開鍵〜/ .ssh / id_rsa.pubのコンテンツが、以下に示すようにリモートユーザー〜/ .ssh/authorized_keysファイルに追加されます。
Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.>
ステップ4–SSHパスワード認証を無効にする
次に、Ubuntu 18.04サーバーマシンにログインし、SSHパスワードベースの認証を無効にして、サーバーにセキュリティの層を追加します。
ファイル/etc/ ssh / sshd_config:
を編集して、パスワードベースの認証を無効にできます。nano /etc/ssh/sshd_config
次の行を見つけて、値を「no」に変更します。
PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
ファイルを保存して閉じてから、SSHサービスを再起動して構成を適用します。
systemctl restart ssh
ステップ5–SSHキーを使用してサーバーにログインします
この時点で、SSHキーベースの認証が構成されています。次に、公開鍵を使用してUbuntu18.04サーバーマシンにログインします。
次のコマンドを実行するだけで、Ubuntu18.04サーバーにログインできます。
ssh [email protected]
初めてログインする場合は、次のようなプロンプトが表示されます。
The authenticity of host '192.168.0.102 (192.168.0.102)' can't be established. ECDSA key fingerprint is f7:9c:72:63:33:ac:d6:49:26:9c:af:c6:ff:11:27:01. Are you sure you want to continue connecting (yes/no)? yes
はいと入力します Enterを押します 続行するためのキー。次に、以下に示すように、秘密鍵のパスフレーズを入力するように求められます。
Enter passphrase for key '/root/.ssh/id_rsa':
秘密鍵のパスフレーズを入力し、 Enterを押します サーバーにログインします。
結論
上記のチュートリアルでは、Ubuntu18.04でパスフレーズを使用してSSHキーベースの認証を設定する方法を学習しました。クライアントマシンとUbuntu18.04サーバーマシン間の接続は非常に安全になりました。同じキーを別のリモートサーバーに使用することもできます。 SSHキーベースの認証を開始する準備ができている場合は、Atlantic.NetでVPSホスティングを今すぐお試しください。