リモートサーバーへの SSH
このチュートリアルでは、ssh
を使用してリモート Linux サーバーに安全に接続する方法を示します。
SSH(Secure Socket Shell)を使用してリモート Linux サーバーに安全にアクセスする
SSH は SecureSocketShell の略です。これは、リモートの Linux マシンに安全にアクセスするために使用されるプロトコルです。
コンピューターとリモート Linux マシンの間に SSH 接続が確立されると、リモート Linux マシンでシェルが開始され、コンピューターでこのシェルにアクセスします。このシェルを使用して、ローカルコンピューターなどのリモート Linux マシンですべてのコマンドを実行できます。
SSH プロトコルは、リモート Linux マシンにアクセスするために非常に安全であり、システムおよびネットワーク管理者は通常、リモート Linux マシンを保守および構成するために SSH プロトコルを使用します。
SSH はクライアントサーバーアーキテクチャを使用します。クライアントコンポーネントとサーバー側コンポーネントがあります。リモートの Linux マシンにアクセスしたい人は、SSH クライアントを自分のマシンにインストールしておく必要があります。
SSH クライアントは、リモート Linux マシンにアクセスするためのプログラムです。リモート Linux マシンの情報と資格情報を SSH クライアントに入力し、詳細が有効な場合は、安全な SSH 接続を開始します。
サーバー側コンポーネントは、リモート Linux マシンで実行されます。リモート Linux マシンには、SSH サービスがインストールされ、稼働している必要があります。
SSH サービスは、サーバーなどの特定のポートで着信接続を常にリッスンします。SSH クライアントが接続を開始すると、SSH サービスはサポートするプロトコルバージョンで応答し、2つは識別に使用されるデータを交換します。資格情報が有効になると、SSH 接続が確立されます。
使用できる SSH ツールはたくさんあります。OpenSSH はその 1つであり、主に Linux ディストリビューションで使用されます。このチュートリアルでは、デモンストレーションの目的で OpenSSH を使用します。
Linux に OpenSSH クライアントをインストールする
多くの Linux ディストリビューションには、SSH クライアントがすでにインストールされています。Linux では、プログラムをインストールする前に、プログラムがすでにインストールされているかどうかを確認することをお勧めします。
ssh
と入力して Enter キーを押すと、ssh
が既にインストールされているかどうかを確認します。
ssh
コマンドは、その使用法を標準出力に表示します。これは、SSH クライアントがすでにインストールされていることを意味します。SSH クライアントがインストールされていない場合は、このチュートリアルを続行する前に、最初に SSH クライアントをインストールしてください。
以下のコマンドを入力して、OpenSSH クライアントをマシンにインストールします。スーパーユーザーのパスワードの入力を求められ、インストールを続行するためのパスワードを入力します。
sudo apt-get install openssh-client
Windows ユーザーは、有名な PuTTY
プログラムを SSH クライアントとして使用できます。
リモート Linux マシンに OpenSSH サーバーをインストールする
OpenSSH サーバーにアクセスする前に、リモート Linux マシンに OpenSSH サーバーがインストールされていることを確認してください。インストールされていない場合は、必ずインストールしてください。
Linux に OpenSSH サーバーをインストールするには、次のコマンドを実行します。
sudo apt-get install openssh-server
下の画像で OpenSSH サーバーをインストールしようとしていますが、マシンにはすでに OpenSSH サーバーがインストールされていると表示されます。
リモート Linux マシンで OpenSSH サーバーを起動する
リモート Linux マシンに OpenSSH サーバーを正常にインストールした後、SSH クライアントからの着信接続をリッスンするために OpenSSH サービスを開始する必要があります。
まず、sudo service ssh status
と入力して、OpenSSH サービスのステータスを確認します。以下の出力は、サービスが非アクティブ(デッド)
であることを示しています。
sudo service ssh start
コマンドを使用して OpenSSH サービスを開始します。このコマンドは、ssh
デーモンの実行を開始します。
sudo service ssh status
コマンドを使用して、サービスのステータスを確認します。出力には、サービスがアクティブ(実行中)
になっていることが示されます。
リモート Linux マシンには OpenSSH サーバーがインストールされており、稼働しています。これで、SSH クライアントからの着信接続を受け入れる準備が整いました。
ssh
コマンドを使用してリモート Linux マシンにアクセスする
このチュートリアルのデモンストレーション目的で使用するリモート Linux マシン上に新しいユーザーを作成します。useradd
コマンドを使用して、新しいユーザーdelftstack
を作成します。
passwd
コマンドを使用して、ユーザーdelftstack
のパスワードを設定します。
次に、OpenSSH クライアントがインストールされているマシンに移動し、新しく作成されたユーザーdelftstack
を使用してリモート Linux マシンにアクセスしようとします。
SSH は、次の表記法を使用してリモート Linux マシンにログインします。
ssh username@remotehostname
ssh username@remoteIPaddress
SSH は、ユーザーのパスワード delftstack
を要求し、パスワードを入力して、Enter キーを押します。以下のような出力が表示されたら、リモート Linux マシンに正常にログインしています。