SSH とは何ですか?また、どのように使用しますか?知っておくべきセキュア シェルの基本
Linux マシンにリモート接続する必要がありますか? SSH が必要です。この便利な Linux コマンドについて知っておくべきことはすべてここにあります。
リモート管理を行う必要がある場合は、ある時点で Linux サーバーにログインして作業を開始する必要があります。 これを行うには、SSH (別名 Secure Shell) を使用する必要があります。このようなツールを使用したことがない人にとっては、リモート システムへのログインが簡単になるだけでなく、非常に安全であるため、非常に便利です。
SSHとは何ですか?
SSH は、リモート マシンにログインするための安全な手段です。ログインすると、サーバーを操作するために必要なコマンドを実行できます。 SSH の使用が難しいと考える前に、心配する必要はありません。 SSH の使用は非常に簡単であるだけでなく、非常に強力でもあります。
SSH を使用してリモート サーバーに接続する方法
必要なもの:SSH を使用するための最初の手順を説明します。 Pop!_OS Linux でデモを行いますが、この情報は SSH をサポートする Linux のディストリビューション (ほとんどのディストリビューション) で機能します。このチュートリアルを進める必要があるのは、Linux の 2 つのインスタンスを実行することだけです。それでおしまい。 SSH を使ってみましょう。
1. リモートマシンにログインします。
SSH を使用すると、ローカル マシンからリモート マシンにログインできます。両方のマシンにユーザー アカウントが必要です。これらのアカウントは各マシンで同じである必要はありません (これについてはすぐに説明します) が、両方のログイン資格情報が必要です。
ログインするサーバーの IP アドレス (またはドメイン) も必要です。たとえば、リモート サーバーの IP アドレスは 192.168.1.11 で、ユーザー アカウントは両方のマシンで同じであるとします。デスクトップ コンピュータにログインし、ターミナル ウィンドウを開いて、次のコマンドを使用してリモート マシンにログインします。
ssh 192.168.1.11
リモート マシン上でユーザー名の入力を求められます。パスワードによる認証に成功すると、リモート マシンにログインし、作業を開始できるようになります。
2. ドメイン名でログインします
リモート マシンがドメイン www.example.com に関連付けられているとします。次のコマンドを使用してログインできます。
ssh www.example.com
3. 別のユーザー名を使用してログインします
さて、リモート マシン上のユーザー名がデスクトップ上のユーザー名と同じでない場合はどうなるでしょうか?リモート マシンのユーザー名が olivia の場合は、次のコマンドを使用してログインできます。
ssh olivia@192.168.1.11
olivia のパスワード (ローカル ユーザーのパスワードではありません) の入力を求められます。
4. 非標準ポート経由でログインする
通常、SSH はポート 22 を使用します。管理者によっては、そのポートを (セキュリティ上の理由から) 変更する場合があります。サーバー管理者がポート 2022 をリッスンするように SSH を設定している場合、標準の SSH コマンドを入力するだけでログインすることはできません。代わりに、次のように -p (ポートの) オプションを追加する必要があります。 :
ssh olivia@192.168.1.11 -p 2022
SSH サイトの構成
これらの IP アドレスとユーザー名をすべて記憶するのは、一部の人にとって非常に面倒な作業となる場合があります。幸いなことに、SSH を使用すると、このすべての情報を格納する構成ファイルを作成できます。たとえば、ログインするサーバーの次のリストがあるとします。
- ウェブサーバー - 192.168.1.11
- 電子メールサーバー - 192.168.1.12
- データベースサーバー - 192.168.1.13
次のコマンドを使用してログインするだけで済むように SSH を設定しましょう。
- SSH Web1
- SSHメール1
- SSH DB1
1. 設定ファイルを作成する
また、web1 のユーザーは olivia、email1 のユーザーは nathan、db1 のユーザーはローカル マシンのユーザーと同じであると仮定します。これを設定するには、~/.ssh ディレクトリに構成ファイルを作成する必要があります。そのためには、ローカル マシンのターミナル ウィンドウに戻り、次のコマンドを実行します。
nano /home/USER/.ssh/config
USER は Linux ユーザー名です。
2. ファイルを設定する
そのファイルに次の行を追加します。
Host web1
Hostname 192.168.1.11
User olivia
Host email1
Hostname 192.168.1.12
User nathan
Host db1
Hostname 192.168.1.13
ファイルを保存して閉じます。これで、短いコマンド (つまり、ssh web1、ssh email1、および ssh db1) を使用して、これらの異なるサーバーにログインできるようになります。ただし、web1 の場合は olivia のパスワードの入力を求められ、email1 の場合は nathan のパスワードの入力が求められ、db1 の場合はローカル ユーザーと同じユーザーの入力が求められることに注意してください。
SSH を使用してリモート マシン上でコマンドを実行する
これは便利なちょっとしたトリックです。必ずしもリモート マシンにログインする必要はないが、コマンドを実行する必要があるとします。たとえば、リモート ユーザーのホーム ディレクトリの内容を一覧表示するとします。そのためには、次のコマンドを発行できます。
ssh olivia@192.168.1.11 ls /home/olivia
構成ファイルを設定したので、そのコマンドを次のように切り詰めることができます。
ssh web1 ls /home/olivia
Linux にはユーザーのホーム ディレクトリへのショートカットがあるため、このコマンドをもう少し省略できます (/home/olivia と ~/ は同じものであるため)。そのためのコマンドは次のようになります。
ssh web1 ls ~/
親愛なる皆さん、これが SSH を使用してリモート Linux マシンにログインする基本です。 Linux マシンのリモート管理を行う必要がある場合は、これを知っておく必要があります。次回は、さらに安全なリモート ログインのための SSH キー認証について紹介します。