GNU/Linux >> Linux の 問題 >  >> Debian

SSHを使用してLinuxサーバーをリモート管理する方法

SSHはSecureShellの略で、構成、管理、監視、トラブルシューティングなどのためにローカルネットワークまたはインターネット上のリモートサーバーに安全にアクセスするために使用されるプロトコルです。

この記事では、SSHを使用してリモートLinuxサーバーを管理する方法について説明します。

Debian10マシンですべてのコマンドを実行しました。

前提条件

次のものが必要です。

  1. root権限を持つ2台のDebian10マシン。
  2. リモートマシンのIPアドレス、ユーザー名、およびパスワード。
  3. 両方のマシンでのインターネット接続。

オープンSSHサーバーをインストールするにはどうすればよいですか?

インフラストラクチャに新しいLinuxマシンをセットアップしたら、リモートアクセスの準備をすることが重要です。したがって、アクセスしようとしているリモートサーバーまたはマシンにopensshをインストールする必要があります。

開いているSSHサーバーをインストールする前に、次のコマンドを実行してリポジトリを更新します。

apt-get update

操作が完了するのを待ちます。

リポジトリを更新した後、root権限で次のコマンドを実行して、開いているSSHサーバーをインストールします。

apt-get install openssh-server

確認を求められたら、キーボードから「y」を押して、インストールが完了するのを待ちます。完了するまでに数分かかる場合があります。

SSHサーバー設定の構成

Open SShがサーバー側にインストールされたら、基本的な構成設定を編集できます。ターミナルを開き、root権限で次のコマンドを実行します。

nano /etc/ssh/sshd_config

以下は出力例です。

上記のファイルでさまざまなパラメータを変更できます。

デフォルトでは、SSHはポート22でリッスンします。目的のポートに変更できます。サーバーと同時に確立できる最大セッション(MaxSessions)を変更することもできます。デフォルト値は10です。

サーバーのSSHポートの変更

すでに説明したように、サーバーはデフォルトでポート22でリッスンします。特定のポートをリッスンするようにサーバーを構成する場合の手順は次のとおりです。

ターミナルを開き、root権限で次のコマンドを実行します。

nano /etc/ssh/sshd_config

上のスクリーンショットに示すように、ファイルを開く必要があります。

ポート22または#Port22を見つけて、#記号なしで目的のポート番号を入力します。

0〜1023のポートは特定のサービス用に予約されているため、1024〜65535のポート番号を使用することをお勧めします。

2222を割り当てるとすると、SSH構成ファイルに次のように記述します。

Port 2222

以下は、ポート番号を変更した後の出力例です。

ターミナルで次のコマンドを実行して、SSHサービスを再起動します。

service ssh restart

SSHサーバーでのルートログインの有効化

デフォルトでは、セキュリティ上の理由から、root権限でSSHサーバーに直接ログインすることはできません。このログインを有効にする場合は、SSHサーバー構成ファイルを変更する必要があります。

ターミナルを開き、root権限で次のコマンドを実行して、構成ファイルを開きます。

nano /etc/ssh/sshd_config

認証ブロックに次の行を追加します

PermitRootLoginはい

以下は、構成ファイルに変更を加えた後の出力例です。

root権限を持つ端末で次のコマンドを実行して、SSHサービスを再起動します。

service ssh restart

SSHサーバーへのログイン試行の失敗を減らす

デフォルトでは、SSHサーバーへのログインを6回試行できます。値が6の半分に達すると、追加のログイン失敗がログに記録されます。この値を変更する場合は、SSHサーバー構成ファイルのMaxAuthTriesパラメーターを調整する必要があります。

ターミナルを開き、root権限で次のコマンドを実行します。

Authenticationブロックに次の行を追加します(この値を1に設定するとします)。

MaxAuthTries 1

以下は、ファイルに変更を加えた後の出力例です。

root権限を持つ端末で次のコマンドを実行して、SSHサービスを再起動します。

service ssh restart

以下は出力例です。

1回のログイン失敗の後、次のスクリーンショットに示すように、認証失敗のメッセージが多すぎます。

SSHサーバーに特定のIPをリッスンさせる

デフォルトでは、SSHサーバーはSSHサーバーに割り当てられたすべてのIPをリッスンします。ただし、構成ファイルに変更を加えることで、SSHサーバーに特定のIPをリッスンさせることができます。方法は次のとおりです。

次のスクリーンショットに示すように、インターフェイスに2つのIPアドレス(10.1.1.2と10.1.1.3)が割り当てられているとします。サーバーにIPアドレス10.1.1.2をリッスンさせたい。

ターミナルを開き、root権限で次のコマンドを実行して、SSH構成ファイルを開きます。

nano /etc/ssh/sshd_config

ファイルの先頭に次の行を追加します

ListenAddress 10.1.1.2

以下は、構成ファイルに変更を加えた後の出力例です。

ターミナルで次のコマンドを実行して、SSHサービスを再起動します。

service ssh restart

特定のユーザーまたはグループによるSSHサーバーへのログインの許可または拒否

デフォルトでは、すべてのユーザーがSSHサーバーにリモートでログインできます。ただし、特定のユーザーまたはグループがSSHサーバーにログインすることを許可または拒否することができます。

ターミナルを開き、root権限で次のコマンドを実行して、SSHサーバー構成ファイルを開きます。

nano /etc/ssh/sshd_config

以下は出力例です。

ユーザー「tony」のみがSSHサーバーにリモートログインできるようにしたいとします。他のユーザーはSSHサーバーにログインできなくなります。複数のユーザーがいる場合は、スペースで区切る必要があります。

SSHサーバー構成ファイルに次の行を追加します。

AllowUsers tony

以下は、行を追加した後のサンプル構成ファイルです。

ターミナルでroot権限を使用して次のコマンドを実行し、SSHサービスを再起動します。

service ssh restart

同様に、すべてのユーザーがSSHサーバーにリモート接続できるようにしたいが、1つ以上を拒否したい場合は、サーバー構成ファイルに次の行を追加します。ユーザーはコマンドで区切る必要があります。ユーザー「tony」のみを拒否したい場合は、サーバー構成ファイルに次の行を追加します。

DenyUsers tony

以下は、上記の行を追加した後のサンプル構成ファイルです。

ターミナルでroot権限を使用して次のコマンドを実行し、SSHサービスを再起動します。

service ssh restart

同様に、構成ファイルに次の行を追加することで、ユーザーのグループがSSHサーバーにログインすることを許可および拒否できます。

AllowGroups <groupname>

または

DenyGroups <groupname>

許可または拒否するグループが複数ある場合は、スペースで区切ることができます。

許可と拒否の組み合わせは、次の順序で処理されます。

DenyUsers、AllowUsers、DenyGroups、そして最後にAllowGroups

ログイン猶予時間の変更

デフォルトでは、SSHの後にリモートサーバーにログインするのに2分かかります。 2分以内にリモートサーバーにログインできない場合、SSHは切断されます。ログイン猶予時間を変更する方法は次のとおりです。

ターミナルを開き、root権限で次のコマンドを実行して、サーバー構成ファイルを開きます。

nano /etc/ssh/sshd_config

以下は出力例です。

次の行を見つけます

#LoginGraceTime 2m

この行を希望の猶予時間、たとえば1分に置き換えます。完全な行は、

である必要があります
LoginGraceTime 1m

以下は、変更を加えた後のサンプル構成ファイルです。

ファイルを閉じ、fileコマンドを発行してSSHサービスを再起動します。

service ssh restart

OpenSSHクライアントのインストール方法

リモートマシンまたはサーバーにアクセスするDebian10マシンはクライアントと呼ばれ、「オープンSSHクライアント」をインストールする必要があります。

ターミナルを開き、次のコマンドを実行してリポジトリを更新します。

apt-get update

操作が完了するのを待ちます。

リポジトリが更新されたらすぐに、次のコマンドを実行して、開いているSSHクライアントをインストールします。

apt-get install openssh-client

確認を求められたら、キーボードからYを押します。インストールには数分かかる場合がありますので、しばらくお待ちください。

クライアントとサーバーの両方で次のコマンドを実行して、SSHサービスが実行されていることを確認します。

リモートマシンのクライアントとサーバーの両方でSSHを実行したら、リモート管理に取り掛かることができます。

SSHを使用したリモートDebian10サーバーへの接続

リモートのDebian10マシンに接続するには、そのIPアドレス、ユーザー名、およびパスワードが必要です。

SSHサーバーがデフォルトのポート22でリッスンしている場合のコマンドの完全な構文は次のとおりです。

ssh

ユーザーパスワードの入力を求められ、キーボードを使用して入力し、Enterキーを押します。

ユーザーがtonyで、リモートマシンのIPアドレスが10.1.1.2であるとします。ターミナルで次のコマンドを実行します。

ssh [email protected]

以下は出力例です。

これで、上のスクリーンショットに示すように安全に接続されているはずです。

ただし、SSHサーバーが他のポートでリッスンしている場合(2222を想定)。コマンドの完全な構文は次のようになります。

ssh-p<ポート番号>[メール保護]アドレス

ユーザーがtonyで、リモートマシンのIPアドレスが10.1.1.2であるとします。ターミナルで次のコマンドを実行します。

ssh -p 2222 [email protected]

結論

これが、SSHを使用したLinuxサーバーのリモート管理に関するチュートリアルでした。楽しんでいただけたでしょうか。


Debian
  1. Osqueryを使用してLinuxサーバーのセキュリティを監視する方法

  2. Linux サーバーを Windows DNS サーバーに登録する方法

  3. SSH経由でLinuxをリモートでインストールする方法は?

  1. AndroidからLinuxでSSH接続する方法

  2. Ubuntu 22.04JammyLinuxでSSHサーバーを有効にする方法

  3. LinuxでパスワードなしのSSHを設定する方法

  1. Rdiffwebを使用してLinuxバックアップを管理する

  2. LinuxでSSHを使用してパーソナルファイルサーバーを作成する方法

  3. Linux でリバース SSH トンネルをセットアップする方法