Secure Shell(SSH)は、クライアントとサーバー間の安全な接続を確立するために設計された暗号化されたネットワークプロトコルです。
最も一般的な2つのSSH認証方法は、パスワードベースの認証と公開キーベースの認証です。 SSHキーの使用は、通常、従来のパスワード認証よりも安全で便利です。
この記事では、CentOS8でSSHキーを生成する方法について説明します。 SSHキーを設定し、パスワードなしでリモートサーバーに接続する方法を説明します。
CentOSクライアントにはすでにSSHキーペアがあります。新しいキーペアを生成する場合、古いキーペアは上書きされます。
次の ls
コマンドを実行して、キーファイルが存在するかどうかを確認します。
ls -l ~/.ssh/id_*.pub
コマンドラインの出力が次のようになっている場合:「そのようなファイルまたはディレクトリがありません」または「一致するものが見つかりません」は、ユーザーがSSHキーペアを持っていないことを意味し、次の手順に進んでSSHキーペアを生成できます。
それ以外の場合、SSHキーペアがある場合は、それらを直接使用するか、古いキーをバックアップして新しいキーペアを生成できます。
電子メールアドレスをコメントとして使用して、4096ビットのSSHキーペアを生成するには、次のコマンドを入力します。
ssh-keygen -t rsa -b 4096-C "[email protected]"
ファイル名を指定するように求められます。
Enter file in which to save the key(/home/yourusername/.ssh/id_rsa):
Enter
を入力して、デフォルトのファイルの場所とファイル名を受け入れます。
次に、安全なパスワードを入力するように求められます。このセキュリティパスワードを設定する必要があるかどうかに関係なく、それは完全にあなた次第です。安全なパスワードはより安全になります。安全なパスワードが必要ない場合は、次のように入力します。
Enter passphrase(empty for no passphrase):
インタラクションプロセス全体は次のようになります。
新しいSSHキーが生成されたことを確認するには、次のように入力します。
ls ~/.ssh/id_*
出力:
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub
SSHキーが生成されたので、次のステップは、管理するサーバーに公開キーをコピーすることです。
公開鍵をリモートサーバーにコピーする最も簡単で推奨される方法は、 ssh-copy-id
ツールを使用することです。ローカルマシンターミナルに入力します。
ssh-copy-id remote_username@server_ip_address
このコマンドは、 remote_username
パスワードを入力するように要求します。
remote_username@server_ip_address's password:
ユーザーが承認されると、公開キーファイル( 〜/ .ssh / id_rsa.pub
)がリモートユーザーの〜/ .ssh / authorized_keys
ファイルに添付され、接続が閉じられます。
Number ofkey(s) added:1
Now try logging into the machine,with:"ssh 'username@server_ip_address'"
and check to make sure that only the key(s) you wanted were added.
ローカルコンピュータで ssh-copy-id
が使用できない場合は、次のコマンドを使用して公開キーをコピーします。
cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
上記の手順を完了すると、パスワードを入力せずにリモートサーバーに直接ログインできるようになります。
確認するには、SSH経由でサーバーにログインしてみてください。
ssh remote_username@server_ip_address
秘密鍵のパスワードを設定しないと、すぐにサーバーにログインできるようになります。それ以外の場合は、パスワードの入力を求められます。
リモートサーバーをより安全にするために、SSHパスワード認証を無効にすることができます。
続行する前に、パスワードなしでsudoユーザーとしてサーバーにログインできることを確認してください。
SSHパスワード認証を無効にするには、以下の手順に従ってください。
ssh sudo_user@server_ip_address
etc / ssh / sshd_config
を開きます。sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
sudo systemctl restart ssh
現時点では、パスワードベースの認証は無効になっています。
新しいSSHキーペアを生成し、SSHベースの認証を設定する方法を示します。同じキーを使用して、複数のリモートサーバーを管理できます。パスワード検証を無効にし、サーバーのセキュリティを強化する方法を学びました。
デフォルトでは、SSHはポート22でリッスンします。このデフォルトのSSHポートを変更すると、自動攻撃のリスクを減らすことができます。ワークフローを簡素化するには、SSH構成ファイルを使用してすべてのSSH接続を定義します。
Recommended Posts