Ubuntu16.04でSSHキーを設定する方法を紹介します。 SSHまたはSecureSHELLは、最も一般的で信頼できるUNIXベースの暗号化ネットワークプロトコルです。これは、安全なデータ通信、リモートサーバーログイン、リモートコマンド実行、および2つのネットワークサーバー間の他の多くの安全なネットワークサービスに使用できます。通常、パスワード認証はSSH経由でリモートサーバーに接続するために使用されますが、このチュートリアルでは、SSHキーを使用してUbuntu16.04VPSにログインする方法を示します。キーペア(秘密キーと公開キー)を生成し、秘密キーをサーバーに配置してから、ローカルに保存されている秘密キーを使用してサーバーにアクセスします。この方法では、パスワードを使用するだけでなく、サーバーに接続するためのより安全な方法が提供されます。
このチュートリアルでは、LinuxとWindowsの両方のオペレーティングシステムでSSHキーペアを生成する方法についても説明します。
1。 Ubuntu16.04でのSSHキーの生成
SSHキーペアを生成するには、ローカルのUbuntu16.04ベースのコンピューターのターミナルから次のコマンドを実行するだけです。
ssh-keygen
Enterキーを押すだけで、すべての質問にデフォルト値を残すことができます。オプションで、パスフレーズを設定してセキュリティのレイヤーを追加することもできます。必要がない場合は、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: SHA256:2QB/eJ39/4N7Q3PRSghNJmglX6hh2pSqQ3uGHhfd7Og root@rosehosting The key's randomart image is: +---[RSA 2048]----+ | . .+o++ | | oB+o=.o | | O+=+.o.. .| | . + +*o . .o.| | . + .So. . .o| | * + . . .oo| | . * . o +| | . E . +.| | .o +| +----[SHA256]-----+
これにより、ローカルシステムの/root/.ssh/ディレクトリに2048ビットの秘密鍵と公開鍵(id_rsaおよびid_rsa.pub)が作成されます。
ssh-copy-idを使用して公開鍵をUbuntu16.04サーバーにアップロードします
次のステップでは、生成された公開鍵をリモートのUbuntuサーバーにアップロードする必要があります。これを行うには複数の方法があります。
最も簡単な方法は、 ssh-copy-idを使用することです。 効用。これを機能させるには、パスワード認証を使用してSSH経由でサーバーに接続できる必要があります。
次に、次のコマンドを使用して、公開鍵をリモートサーバーにアップロードできます。
ssh-copy-id root@remote_server
ユーザーパスワード(この例ではrootパスワード)を入力するように求められ、Enterキーを押します。接続が確立されると、id_rsa.pub(公開鍵)の内容がリモートサーバーの/ root / ssh/authorized_keysファイルにコピーされます。
次の出力が表示されます。
Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@remote-host'" and check to make sure that only the key(s) you wanted were added.>
これで、SSHキーを使用してUbuntuサーバーに対して認証できるようになります。
公開鍵をUbuntuサーバーに手動でアップロードする
ssh-copy-idの場合 システムでツールを使用できない場合は、サーバーにログインして手動で行うことができます。
まず、SSH経由でサーバーに接続します:
ssh root@remote_server
接続したら、次のコマンドを使用して、リモートサーバー上に新しい.sshディレクトリを作成する必要があります。
mkdir /root/.ssh
次に、公開鍵をリモートサーバーのauthorized_keysファイルにコピーする必要があります。 nanoテキストエディタを使用して、公開鍵のコンテンツを作成してから追加できます。
nano /root/.ssh/authorized_keys
SSH構成ファイルも開く必要があります:
nano /etc/ssh/sshd_config
次の行が存在し、コメントされていないことを確認してください。
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys
変更を保存してSSHサービスを再起動します:
systemctl restart ssh
それでおしまい。これ以降、リモートサーバーに接続しようとするたびにSSHキーを使用するようになります。
2。 PuTTYおよびPuTTYGenを使用したWindowsベースのシステムでのSSHキーの生成
ローカルマシンでWindowsオペレーティングシステムを使用している場合は、SSH経由でサーバーに接続するためのPuTTYとSSHキーを生成するためのPuTTYgenが必要になります。こちらからダウンロードできます(https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)。
SSHキーを生成するには、先に進んでコンピューターでPuTTYGenを起動します。
下部で、生成されたキーのビット数を選択できます。 4096と入力し、[生成]をクリックします。マウスの動きの入力に基づいて一意のキーを生成するために、PuTTYgen画面の空白の領域上でマウスの動きを開始します。
緑のプログレスバーが塗りつぶされると、公開鍵が生成されます。それらのキーをコピーして、コンピューターの.txtファイルに保存できます。
秘密鍵を保存するには、[秘密鍵の保存]ボタンをクリックする必要があります。さらに、秘密鍵の鍵パスフレーズを設定することもできます。
これで、PuTTYを開き、秘密鍵の場所を割り当てることができます。[接続]メニューの[SSH]をクリックしてから、[認証]をクリックします。参照ボタンをクリックして、保存した秘密鍵ファイルの場所を入力します。
次に、公開鍵をサーバーにアップロードする必要があります。これを行うには、[セッション]をクリックし、サーバーのIPアドレスとSSHポート番号を入力し、[接続の種類]で[SSH]を選択して、[開く]をクリックします。
ユーザー名とパスワードの入力を求められます。 rootパスワードを使用して、ユーザーrootとしてログインできます。
サーバーにログインしたら、最初に.sshディレクトリを作成します。
mkdir /root/.ssh
次に、.sshディレクトリ内にauthorized_keysファイルを作成し、このファイル内に公開鍵の内容を追加します。
nano /root/.ssh/authorized_keys
次のコマンドを使用して、サーバーでSSH構成ファイルを開くこともできます。
nano /etc/ssh/sshd_config
次の行が存在し、コメントが付けられていないことを確認してください。
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys
変更が加えられた場合は、次のコマンドでsshdサービスを再起動することを忘れないでください。
systemctl restart ssh
これにより、SSHキーが正常に構成されました。これで、サーバーから切断してPuTTYを終了できます。次回サーバーに接続しようとすると、PuTTYは接続を確立するために設定した公開鍵を使用します。
3。パスワード認証を無効にする
上記のいずれかの方法を使用してSSHキーを正常に構成し、SSHキーベースの認証を使用してサーバーにログインできることを確認したら、サーバーへのパスワードベースの認証を無効にできます。これにより、セキュリティの層が追加され、サーバーに対するすべてのブルートフォース攻撃が防止されます。
パスワードベースの認証を無効にするには、次のコマンドでSSH構成ファイルを開きます。
nano /etc/ssh/sshd_config
そして、次の行のコメントを外し、その値を「no」に設定します。
PasswordAuthentication no
次のコマンドでsshdサービスを再起動します:
systemctl restart ssh That’s it. You have successfully set up SSH keys on your Ubuntu 16.04 VPS.
もちろん、Ubuntu 16.04 VPSでSSHキーを設定する必要はありません。Ubuntuホスティングサービスのいずれかを使用している場合は、専門のLinux管理者にSSHキーの設定を依頼するだけです。 24時間年中無休でご利用いただけます。リクエストはすぐに処理されます。
PS 。この投稿が気に入った場合は、下のボタンを使用してソーシャルネットワーク上の友達と共有するか、コメントセクションにコメントを残してください。ありがとう。