SSHは、リモートサーバーに安全にログインするために、主にシステム管理者によって使用される広く使用されているプロトコルです。これにより、コマンドラインアクセスで、サーバーのすぐそばにいるかのようにリモートシステムで作業できるようになります。この投稿では、CentOSシステムでSSHを有効にし、SSHクライアントを使用して接続する方法について説明します。 SSHサーバーの構成方法についても説明します。
Ubuntu OSの場合、UbuntuでSSHを有効にする方法については、この投稿にアクセスしてください。
注 : CentOS 8で手順を示しました マシン。
ステップ1:OpenSSHサーバーのインストール
まず、SSH経由でリモートアクセスするマシンにOpenSSHサーバーをインストールする必要があります。以下のコマンドを使用して、CentOSマシンにOpenSSHサーバーをインストールします。
$ sudo dnf install openssh-server
sudoパスワードを入力すると、インストールが開始されたことがわかります。 yを押します 確認を求められた場合。
これにより、OpenSSHサーバーがシステムにインストールされます。
ステップ2:SSHデーモンを起動してステータスを確認する
SSHがインストールされたので、サービスを開始できます。以下のコマンドを使用して、SSHデーモンを起動します。
$ sudo systemctl start ssh
次に、SSHデーモンが起動したかどうかを確認するには、次のコマンドを使用します。
$ sudo systemctl status sshd
ステップ3:ファイアウォールを介したSSHを許可する
CentOSシステムでファイアウォールが有効になっている場合、ファイアウォールは着信SSHトラフィックをブロックします。着信SSHトラフィックを許可するには、ファイアウォールにルールを追加する必要があります。 SSHで使用されるデフォルトのポートは22です。したがって、ルールはポート22を開く必要があります。
以下のコマンドを使用して、ポート22での着信SSHトラフィックを許可します。
$ sudo firewall-cmd --permanent --add-port=22/tcp
このコマンドは、ポート22でのトラフィックを許可するルールをファイアウォールに追加します。22以外のポートにSSHを構成している場合は、ファイアウォールルールでそのポートを使用してください。
ステップ4:SSHアクセスをテストする
SSHが機能していて接続できるかどうかをテストするには、クライアントマシンを開きます。このマシンにはSSHクライアントが必要です。 CentOSクライアントを使用している場合は、次のようにSSHクライアントをインストールできます。
$ sudo dnf install openssh-clients
ここでは、Ubuntuクライアントマシンを使用してテストします。
SSHサーバーに接続するには、リモートシステムのIPアドレスとユーザー名が必要です。
$ ssh [email protected]_ip_address
たとえば、この場合、リモートマシン(SSHサーバーがインストールされている場所)のIPアドレスは「192.168.72.192」であり、ユーザー名は「kbuzdar」であるため、次のコマンドを実行しました。
$ ssh [email protected]
注 :マシンのIPアドレスを見つける方法がわからない場合は、この投稿にアクセスしてください。
SSHサーバーに接続すると、パスワードの入力を求められます。パスワードを入力すると、リモートシステムにログインします。これで、リモートシステムのユーザー名とシステム名を反映するようにターミナルプロンプトが変更されたことにも気付くでしょう。
SSHの設定
SSH構成ファイルは/etc / ssh / sshd_configにあります 。このファイルには、必要に応じて変更できるさまざまな構成オプションが含まれています。ここでは、変更が必要になる可能性のあるいくつかの一般的なオプションを見ていきます。デフォルトのSSHポートとリスニングアドレスの変更、rootログインの無効化、最大セッション数とパスワード試行の構成など。
オプションを構成または変更するには、 sshd_configを編集する必要があります ファイル:
$ sudo nano /etc/ssh/sshd_config
sshd_config の設定を変更した後は、覚えておいてください ファイルの場合は、SSHサーバーをリロードして変更を実装してください:
$ sudo systemctl reload ssh
SSHポートの変更
SSHはデフォルトで、着信接続をリッスンするためにポート22を使用します。何らかの理由でSSHポートを変更する場合は、 sshd_configを編集して変更できます。 ファイルを作成し、次のような行を検索します:
# Port 22
ハッシュ(#)を削除して行のコメントを解除し、 22を置き換えます SSHに設定するポート番号を使用します。
完了したら、sshd_configファイルを保存して閉じます。
リスニングアドレスの変更
デフォルトでは、SSHはすべてのローカルインターフェイスでリッスンします。特定のネットワークインターフェースのみでリッスンするようにSSHを設定するには、 sshd_configを編集します ファイル:
$ sudo nano /etc/ssh/sshd_config
次の行を検索します:
#ListenAddress 0.0.0.0
上記の行のコメントを外し、0.0.0.0をSSHがリッスンするローカルアドレスに置き換えます。
完了したら、sshd_configファイルを保存して閉じます。
ルートログインを無効にする
デフォルトでは、ルート ユーザーはSSHを使用してログインできます。これは、sshd_configファイルのPermitRootLoginパラメータによって制御されます。デフォルトでは「yes」であり、ルートログインが許可されていることを意味します。
rootログインを無効にするには、sshd_configファイルを編集します。
$ sudo nano /etc/ssh/sshd_config
次の行を探します:
# PermitRootLogin no
上記の行のコメントを解除し(コメントされている場合)、「no」を「yes」に置き換えて、SSHを使用したrootログインを無効にします。
完了したら、sshd_configファイルを保存して閉じます。
許可されるセッション数と認証試行回数の変更
デフォルトでは、ネットワーク接続ごとに許可されるセッションの最大数は10です。これは、 MaxSessionsによって変更できます。 sshd_configのパラメータ ファイル。同様に、1回のログインセッションでの認証の最大試行回数は6回で、 MaxAuthTriesを使用して変更できます。 パラメータ。
ネットワーク接続ごとに許可されるセッション数を変更するには、次の行を検索します。
# MaxSessions 10
上記の行のコメントを外し、その値を目的の値に置き換えます。
ログインセッションごとに許可される認証の試行回数を変更するには、次の行を検索します。
# MaxAuthTries 6
上記の行のコメントを外し、その値を目的の値に置き換えます。
完了したら、sshd_configファイルを保存して閉じます。
猶予時間の変更
SSHサーバーに接続すると、ユーザー名とパスワードを使用して認証を完了するのに120秒(デフォルト時間)かかります。この間にログインしないと、サーバーは接続を切断し、再度ログインする必要があります。この時間は、ログインを完了するのにかかる時間より少し長く設定するか、複数のセッションが長時間開いたままになるDoS攻撃を防ぐために低く設定できます。
今回変更するには、次の行を検索します:
# LoginGraceTime 120
上記の行のコメントを解除し、その値を目的の時間(秒単位)に置き換えます。時間制限を設定したくない場合は、値を0に設定します。
完了したら、sshd_configファイルを保存して閉じます。
この投稿では、CentOSマシンでSSHを有効にし、クライアントマシンを使用してSSHに接続する方法について説明しました。また、SSHサーバーのさまざまな構成オプションについても説明しました。リモートアクセスを安全にしたい場合は、SSHサーバーを保護するための11の最良の方法に関する投稿にアクセスしてください。