SSH(セキュアシェルの略)は、リモートシステムに安全にアクセスするために使用されるプロトコルです。これは、リモートサーバーをリモートで管理、管理、およびトラブルシューティングするためにLinuxシステムで最も一般的に使用されるプロトコルです。
この記事は、SSH経由でLinuxサーバーにリモート接続する方法について説明しています。 SSHを介したリモート接続にはOpenSSHユーティリティを使用します。
前提条件
SSHを介したリモート接続のために完了する必要があるいくつかの前提条件は次のとおりです。
- 2台のUbuntuマシン(リモートサーバーとクライアント用)
- サーバーとクライアントマシンの両方のSudoユーザー
- リモートサーバーのIPアドレスまたはホスト名
- リモートサーバーのポート番号、ユーザー名、パスワード
SSHLinuxサーバー
LinuxシステムをSSHで接続するには、次の手順を実行します。
- リモートサーバーへのOpenSSHのインストール
- リモートサーバーでのOpenSSHの構成
- ローカルクライアントマシンへのOpenSSHクライアントのインストール
- SSHクライアントを介したリモートLinuxサーバーへのアクセス
注: ここで説明するコマンドは、Ubuntu20.04LTSでテストされています。
ステップ1:リモートサーバーへのOpenSSHのインストール
OpenSSHは、SSHを介してシステムをリモート接続するためのツールです。 SSH経由でアクセスするシステムにインストールする必要があります。
リモートサーバーで、ターミナルを開き、次のコマンドを発行します。
$ sudo apt update
次に、OpenSSHサーバーをインストールするには、ターミナルで次のコマンドを発行します。
$ sudo apt install openssh-server
次に、sudoパスワードを入力します。
確認を求められたら、 yを押します 、その後、システムはインストールを開始します。
ステップ2:リモートサーバーでのOpenSSHの構成
OpenSSHのインストールが完了したら、いくつかの必要な構成を実行する必要があります。 SSH構成ファイルは/etc / ssh / sshd_config 。構成ファイルを編集するには、ターミナルで次のコマンドを発行します。
$ nano /etc/ssh/sshd_config
OpenSSH構成ファイルは次のようになります。
このファイルに変更を加える前に、次のコマンドを使用して元の構成ファイルのコピーを作成することをお勧めします。
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
一部のオプションのみを構成し、残りのオプションはデフォルトのままにします。
SSHリスニングポートの変更
デフォルトでは、OpenSSHはTCPポート22で実行されます。ただし、OpenSSHサーバーが他のポート(ポート番号1024〜65535の間)でリッスンするようにする場合は、次のように実行できます。
/ etc / ssh / sshd_configを編集します 構成ファイル:
$ sudo nano /etc/ssh/sshd_config
「ポート22」を見つけます ファイル内。 Ctrl+Wを使用して検索できます。
22を置き換えます OpenSSHサーバーがリッスンするポート番号。また、#を削除します 行の前の記号。
たとえば、OpenSSHリスニングポートを2244に設定するには、次のようになります。
port 2244
次に、構成ファイルを保存します。
SSHサーバーでのルートログインの有効化
デフォルトでは、OpenSSHサーバーではrootログインが無効になっているため、rootユーザーとしてログインすることはできません。 rootユーザーとしてリモートSSHサーバーにログインする必要がある場合は、OpenSSH構成でrootログインを有効にする必要があります。
/ etc / ssh / sshd_configを編集します 構成ファイル:
$ sudo nano /etc/ssh/sshd_config
PermitRootLoginを見つけます 禁止パスワード 次の行に置き換えます。また、#を削除します 行の前の記号。
PermitRootLogin yes
次に、構成ファイルを保存します。
認証の試行回数を減らす
デフォルトでは、SSHサーバーへのログインは6回の認証試行が許可されています。パラメータMaxAuthTriesの値を変更することで、これらの認証の試行を減らすことができます。 。
たとえば、認証の試行回数を 3に減らすには 、 / etc / ssh / sshd_configを編集します 構成ファイル:
$ sudo nano /etc/ssh/sshd_config
次に、 MaxAuthTriesを見つけます その値を3に変更します 。
また、#を削除します 行の前の記号。
MaxAuthTries 3
次に、構成ファイルを保存します。
特定のユーザーによるSSHサーバーへのログインを許可または拒否します
デフォルトでは、すべてのユーザーアカウントがSSH経由でリモートシステムにログインできます。特定のユーザーのみがSSHサーバーにログインできるようにするには、 / etc / ssh / sshd_configを編集します。 ファイル:
$ sudo nano /etc/ssh/sshd_config
次に、 user1 を置き換えて、このファイルに次の行を追加します およびuser2 ログインを許可されているユーザーの名前を使用します。
AllowUsers user1 user2
例:
AllowUsers kbuzdar tin
上記の行により、「kbuzdar」と「tin」がSSH経由でログインできるようになります。
同様に、SSHサーバーへのアクセスをユーザーから拒否するには、 user1 を置き換えて、このファイルに次の行を追加します。 およびuser2 ログインを許可されていないユーザーの名前で。
DenyUsers user1 user2
上記の行では、「john」を除くすべてのユーザーがSSH経由でログインできます。
次に、構成ファイルを保存します。
構成ファイルに変更を加えたら、次のコマンドを使用してSSHサービスを再起動します。
$ sudo service ssh restart
ステップ3:ローカルクライアントマシンへのOpenSSHクライアントのインストール
SSH経由でLinuxサーバーに接続するクライアントマシンに、OpenSSHクライアントユーティリティをインストールする必要があります。
OpenSSHクライアントをインストールするには、クライアントマシンのターミナルで次のコマンドを発行します。
$ sudo apt install openssh-client
パスワードを求められたら、sudoパスワードを入力します。
確認を求められたら、 yを押します 、その後、システムはインストールを開始します。インストールが完了すると、OpenSSHクライアントを使用する準備が整います。
ステップ4:LAN経由のSSHクライアントを介したLinuxサーバーへのアクセス
OpenSSHクライアントを介して、IPアドレスまたはホスト名を使用してLAN経由でSSHサーバーに接続できます。クライアントのマシンで、次の構文を使用してSSH経由でリモートサーバーに接続します。
$ ssh [username]@[remoteserver IP or hostname]
パスワードの入力を求められたら、ユーザーのパスワードを入力します。接続が確立されると、リモートサーバーのシェルプロンプトが表示されます。
この場合、リモートサーバーのIPは「192.168.72.157」で、ユーザー名は「kbuzdar」です。したがって、コマンドは次のようになります。
$ ssh [email protected]
OpenSSHリスニングポートを変更した場合、SSHサーバーに接続するコマンドは次のようになります。
$ ssh -p [port_number] [username]@[ip_address]
例:
$ ssh -p 2244 [email protected]
インターネット経由でSSHクライアントを介してLinuxサーバーにアクセスする
インターネット経由でリモートサーバーに接続するには、リモートサーバーのパブリックIPが必要です。また、ルーターにポート転送を設定する必要があります。インターネット経由でリモートサーバーをSSH接続する方法の手順は次のとおりです。
1.まず、リモートサーバーのパブリックIPアドレスを確認する必要があります。これを行うには、リモートマシンの端末で次のコマンドを発行します。
$ curl ipaddr.pub
2.次に、ルーターで転送を設定する必要があります。設定方法はルーターごとに異なりますが、ほとんどすべてのルーターでこれを実行できます。
3.リモートマシンのパブリックIPアドレスを見つけ、ルーターでポートフォワーディングを設定したら、次の構文を使用してリモートLinuxマシンをSSHで接続します。
$ ssh [username]@[public_ip_address]
リモートサーバーが22以外のポート番号を使用するように構成されている場合、構文は次のようになります。
$ ssh -p [port_number] [username]@[public_ip_address]
これは、LinuxサーバーをSSHで接続する方法です。 OpenSSHユーティリティを使用してリモートLinuxサーバーをSSH接続する方法を説明しました。また、SSH経由で接続するときに役立つと思われるいくつかの基本的な構成についても説明しました。これで、管理とトラブルシューティングのためにリモートLinuxサーバーを簡単に管理できます。