アンドロイド

CentOS 7でSSHキーを設定する方法

Local YUM REPO on CentOS 7 / RHEL 7 using DVD ISO

Local YUM REPO on CentOS 7 / RHEL 7 using DVD ISO

目次:

Anonim

Secure Shell(SSH)は、クライアントとサーバー間の安全な接続のために設計された暗号化ネットワークプロトコルです。

最も一般的な2つのSSH認証メカニズムは、パスワードベースの認証と公開キーベースの認証です。 一般的に、SSHキーを使用する方が、従来のパスワード認証よりも安全で便利です。

このチュートリアルでは、CentOS 7システムでSSHキーを生成する方法について説明します。 また、SSHキーベースの認証を設定し、パスワードを入力せずにリモートLinuxサーバーに接続する方法も示します。

CentOSでのSSHキーの作成

新しいSSHキーペアを生成する前に、CentOSクライアントマシン上の既存のSSHキーを確認することをお勧めします。

これを行うには、次のlsコマンドを実行して、すべての公開キーがあればそれをリストします。

ls -l ~/.ssh/id_*.pub

コマンドの出力が「 No such file or directory または no matches found No such file or directory 返す場合、クライアントマシンに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

公開鍵をCentOSサーバーにコピーする

SSHキーペアが生成されたので、次のステップは、管理するサーバーに公開キーをコピーすることです。

公開キーをリモートサーバーにコピーする最も簡単で推奨される方法は、 ssh-copy-id と呼ばれるユーティリティを使用することです。 ローカルマシンのターミナルタイプ:

ssh-copy-id remote_username@server_ip_address

remote_username パスワードの入力を remote_username ます。

remote_username@server_ip_address's password:

パスワードを入力すると、ユーザーが認証されると、公開キー ~/.ssh/id_rsa.pub がリモートユーザー ~/.ssh/authorized_keys ファイルに追加されます。 接続が閉じられます。

Number of key(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経由でサーバーにログインしてみてください。

ssh remote_username@server_ip_address

SSHパスワード認証を無効にする

リモートサーバーにセキュリティのレイヤーを追加するには、SSHパスワード認証を無効にします。

続行する前に、sudo特権を持つユーザーとしてパスワードなしでサーバーにログインできることを確認してください。

SSHパスワード認証を無効にするには、以下の手順に従います。

  1. リモートサーバーにログインします。

    ssh sudo_user@server_ip_address

    テキストエディタでSSH設定ファイル /etc/ssh/sshd_config /etc/ssh/sshd_config ます。

    sudo nano /etc/ssh/sshd_config

    次のディレクティブを検索し、次のように変更します。

    / etc / ssh / sshd_config

    PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

    ファイルを保存したら、次のように入力してSSHサービスを再起動します。

    sudo systemctl restart ssh

この時点で、パスワードベースの認証は無効になっています。

結論

このチュートリアルでは、新しいSSHキーペアを生成し、SSHキーベースの認証を設定する方法を学びました。 同じキーを複数のリモートサーバーに追加できます。

また、SSHパスワード認証を無効にして、サーバーにセキュリティレイヤーを追加する方法も示しました。

デフォルトでは、SSHはポート22でリッスンします。デフォルトのSSHポートを変更すると、自動化された攻撃のリスクが軽減されます。

centos sshセキュリティ