SSH(Secure Shell)は、クライアントシステムとサーバー間で安全に通信するために使用される暗号化されたプロトコルです。管理タスクを実行したり、システムにリモートで接続したり、ファイルにアクセスしたりできます。これは、SSHキーを使用してサーバーと通信するための非常に安全な方法であり、パスワード認証よりも便利な方法です。
ここLinuxAPTでは、サーバー管理サービスの一環として、お客様が関連するSSHクエリを実行するのを定期的に支援しています。
このコンテキストでは、CentOS 7システムでSSHキーを作成する方法と、さまざまな方法を使用してサーバーにSSHキーをコピーする方法を検討します。
CentOSでSSHキーを作成する方法は?
私。この構成手順に進む前に、sudo権限を持つユーザーを使用していることを確認してください。
ii。次に、以下のコマンドを使用して、クライアントシステムでキーペアを生成することから始めます。
$ ssh-keygen
デフォルトでは、ssh-keygenは2048ビットのRSAキーペアを生成します。
iii。以下に示すように、フラグに-b 4096を渡すだけで、より大きな4096ビットキーを作成することもできます。
$ ssh-keygen -t rsa -b 4096
以下のような出力が表示されます:
Output
Generating public/private rsa key pair.
Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):
iv。 Enterキーを押して、デフォルトの場所である./sshディレクトリにキーペアを保存するか、選択に応じて場所を指定できます。
その後、以下のように安全なパスフレーズを入力するように求められます。キーにセキュリティレイヤーを追加するパスフレーズを設定することをお勧めします。必須なので、Enterキーを押すだけでスキップできます。
Output
Enter passphrase (empty for no passphrase):
次のように出力が生成されます:
Your identification has been saved in /home/yourusername/.ssh/id_rsa.
Your public key has been saved in /home/yourusername/.ssh/id_rsa.pub.
重要な指紋は次のとおりです。
SHA256:Vh9pii66/e/md3LLJUuUILZuz37uGg8Yeokkdv7xwCE [email protected]
The key's randomart image is:
+---[RSA 4096]----+
| |
| . |
| + = |
| + * o . |
| o E = . o |
| . B * = . |
| . = X o o .|
| o . +.*o*++ |
| o....==o*OB. |
+----[SHA256]-----+
公開鍵と秘密鍵は、CentOSサーバーでの認証に使用する準備ができています。
次のように入力して、ファイルが生成されているかどうかを確認することもできます。
$ ls ~/.ssh/id_*
次のような出力が表示されます:
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub
公開鍵をCentOSサーバーにコピーする方法は?
ここでは、CentOSサーバーに公開鍵を配置します。これは、ssh-copy-idユーティリティを使用してパブリックをコピーするための高速で簡単な方法です。
私。以下のコマンドを実行して実行します。
$ ssh-copy-id username@server_ip_address
ユーザー名のパスワードを入力するように求められます:
Output
username@server_ip_address's password:
ユーザー認証が成功すると、公開鍵がリモートユーザーの〜/ .ssh / authorized_keysファイルに追加され、接続が切断されます:
Output
Number of key(s) added: 1
ii。これで、コマンドssh username @ server_ip_addressを使用してマシンにログインし、追加するキーのみが追加されていることを確認できます。
クライアントシステムにssh-copy-idユーティリティがインストールされていない場合は、次のコマンドを使用して公開鍵をコピーできます。
$ cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
サーバーへのパスワードベースのSSHアクセスがあることを確認してください。
SSHキーを使用してサーバーにログインする方法は?
これで、リモートユーザーのパスワードなしでリモートマシンにログインできるようになります。
私。 SSHコマンドを使用して接続してみてください:
$ ssh username @ server_ip_address
初めてログインしようとすると、次のように表示される場合があります。
ii。 yesと入力し、Enterキーを押して続行します:
Output
The authenticity of host '192.168.43.9 (192.168.43.9)' can't be established.
ECDSA key fingerprint is ed:ed:f4:g9:66:ge:53:48:e1:55:00:fd:6d:d7:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
これで、キーにパスフレーズを設定していない場合は、パスフレーズを要求せずにすぐにログインできます。それ以外の場合は、パスフレーズを入力するように求められます。認証が成功すると、新しいシェルセッションがCentOSサーバーでユーザーアカウントを開きます。
SSHパスワード認証を無効にする方法は?
SSHのパスワード認証を無効にすると、セキュリティレイヤーがもう1つ追加されます。プロセスを開始する前に、パスワードを入力せずにサーバーに対して認証できること、およびsudoが有効なユーザーアカウントを持っていることを確認してください。
私。 sshを使用してサーバーにログインしてみてください:
$ ssh username@server_ip_address
ii。次に、/ etc / ssh/sshd_configにあるSSH構成ファイルを編集します。
$ sudo nano /etc/ssh/sshd_config
PasswordAuthenticationディレクティブを見つけ、行がコメントアウトされている場合は、その行のコメントを解除し、以下に示すように値を「no」に設定します。
PasswordAuthentication no
iii。ファイルを保存して閉じます。
iv。以下のコマンドを使用してSSHサービスを再起動する必要があります:
$ sudo systemctl restart sshd
これで、CentOSサーバーでパスワードベースの認証が無効になります。