システム管理の世界に慣れておらず、リモート サーバーを保守および監視する必要がある場合は、リモート アクセス用の Secure Shell (SSH) をマスターすることが重要です。 SSH を使用すると、どこからでもサーバーに安全に接続して管理できるため、効率的な管理とセキュリティの強化が保証されます。そこで、このガイドでは、Linux で ssh を使用してリモート サーバーに接続する方法を説明します。
SSHとはどういう意味ですか?
SSH は「 Secure Shell 」の略で、Windows、Linux、macOS 上のリモート サーバーに接続するために使用できる暗号化ネットワーク プロトコルです。これは、クライアントとサーバーの間でデータを転送できる、安全で認証されたチャネルを提供します。 SSH を使用すると、リモート システムに安全にログインすることもできます。 SSH の主な機能の一部は次のとおりです。
- 暗号化 : SSH を使用して交換されるすべてのデータは、対称暗号化、非対称暗号化、または非常に強力な暗号化アルゴリズムのいずれかのハッシュを使用して完全に暗号化され、それによってユーザー データが保護されます。このような暗号化により、ログイン資格情報、コマンド、ファイルなどの機密データがハッカーや脅威アクターによって傍受されたり改ざんされたりすることがなくなります。
-
認証
: SSH は認証を使用して、受信するログイン要求を検証します。次の 2 種類の認証プロトコルをサポートします。
- パスワードベースの認証 – この認証モードでは、ユーザーは登録されたユーザー名とパスワードを入力して自分自身を認証します。これは、SSH を使用してリモート Linux サーバーに接続する最も一般的な方法です。
- SSH キー ペア ベースの認証 – この認証モードでは、暗号化キーのペアが生成されます。公開キーはリモート サーバーに保存され、秘密キーはユーザーのシステムに保存されます。ユーザーがログインしようとすると、キーはユーザーの ID を確認するために使用されます。この方法は安全性の高い方法であり、ユーザーはパスワードを使用してログインする必要がありません。
- プラットフォームの独立性 : SSH を使用すると、ホスト オペレーティング システムに関係なく、任意のリモート サーバーに接続できます。 Linux、Windows、macOS で利用できます。
- 汎用性 : SSH を使用してリモート システムにログインできるだけでなく、scp コマンドを使用して ssh 経由でファイルを送信することもできます。
Linux に OpenSSH をインストールする方法
Teleport、wolfSSH、OpenSSH など、サーバーとクライアントの両方で使用できるさまざまな種類の SSH ソフトウェアがあります。ただし、最も一般的な SSH ソフトウェアは OpenSSH です。一般に知られている OpenBSD Secure Shell または OpenSSH は、クロスプラットフォームの無料のオープンソース ソフトウェアとして 1999 年 12 月 1 日に初めてリリースされました。以下では、Linux に OpenSSH をインストールするプロセスを示しました。
OpenSSH クライアントをインストールする
リモート Linux サーバーに接続するには、システムに「OpenSSH クライアント」がインストールされている必要があります。インストールするには次の手順を使用します:-
1. Linux ディストリビューションに固有のコマンドを使用して、システムに OpenSSH クライアントをインストールします。このガイドでは Debian ベースのシステムを使用しています。
- Debian ベースのシステムの場合:
sudo apt-get install openssh-client
- Fedora ベースのシステムの場合:
sudo dnf install openssh-client
2. SSH クライアントが正しくインストールされているかどうかを確認するには、次のコマンドを実行します。以下のスクリーンショットのような出力が得られます。
ssh
OpenSSHサーバーをインストールする
一般的なクラウド コンピューティング プロバイダーを使用して新しいリモート サーバー インスタンスを作成すると、基本的にサーバー側 SSH ソフトウェア (多くの場合 OpenSSH サーバー) がプリインストールされます。ただし、「オンプレミス」サーバーの場合は、手動でインストールする必要がある場合があります。 OpenSSH サーバーをリモート サーバーにインストールするには、次の手順に従います。
1. まず、このコマンドを使用して、OpenSSH サーバーがシステムにインストールされているかどうかを確認します。
ssh localhost
このタイプの出力が表示された場合は、SSH サーバーがインストールされていないため、手動でインストールする必要があることを意味します。
2. ディストリビューション固有のコマンドを使用して、OpenSSH サーバーをインストールします。
- Debian ベースの Linux システム:
sudo apt-get install openssh-server
- RedHat/Fedora ベースのシステム:
sudo dnf install openssh-server
3. インストール後、このコマンドを使用して SSH サーバーが実行されているかどうかを確認します。場合によっては、コマンドを実行しなくても SSH サーバーが自動的に起動します。
sudo service ssh status
まだアクティブ化されていない場合は、「非アクティブ (デッド)」という出力が表示されます。
4. 非アクティブと表示される場合は、次のコマンドを使用してアクティブにします。
sudo service ssh start
5. 実行中かどうかを確認するには、次のコマンドを再度使用します。
sudo service ssh status
今回は、名前の前に緑色の点と「アクティブ(実行中)」が表示されます。
Linux の SSH コマンド: 構文とオプション
SSH を起動して実行できるようになったので、構文とそれと組み合わせることができるさまざまなオプションを見てみましょう。
ssh <options> <username>@<remote_server_ip_address_or_domain_name>
SSH コマンドと組み合わせることができる一般的なオプションには、次のようなものがあります。
オプション
説明
-4
IPv4アドレスのみでの接続を許可します。
-6
GUI 転送を有効にします (X11 ベースのシステムの場合)
-A
認証エージェント接続の転送を有効にします。
-C
転送速度を高めるために、転送されるすべてのデータを圧縮します。
-p
リモートサーバーに接続するためのポート番号を指定するために使用されます。
-バツ
GUI 転送を有効にします (X11 ベースのシステムの場合)
SSH を使用してリモート Linux サーバーに接続する
SSH コマンドの構文とオプションを学習したら、今度は SSH を使用してリモート Linux サーバーに接続する方法を見てみましょう。以下に説明するいずれかの方法を使用してください。
SSHコマンドを使用して接続する
1. まず、接続するリモート サーバーの IP アドレスを書き留めます。 IP アドレスがわからない場合は、次のコマンドを使用してパブリック IP アドレスを出力します。
curl ifconfig.me
システムがリモート サーバーと同じネットワークに接続されている場合は、次のコマンドを使用します。
ip addr
セキュリティを強化するために、VPN 経由でリモート サーバーに接続することをお勧めします。 VPN とは何か、またその仕組みについてはガイドをご覧ください。
2. 次に、次のコマンドを使用してリモート サーバーに接続します。
ssh <username>@<remote_server_ip_address_or_domain_name>
3. ログインするユーザー名のパスワードを入力し、Enter キーを押します。
4. リモート サーバーに正常にログインすると、以下に示すようなようこそ画面が表示されます。
この場合、リモート サーバーの IP は「172.105.253.48」、ユーザー名は「root」です。
SSH キーを使用してログインします
SSH キーベースの認証は、パスワードベースの認証よりもセキュリティと利便性が強化されていますが、初期設定が少し必要です。これには、リモート サーバー内に配置された公開キーとクライアントに保管される秘密キーのペアの暗号キーを使用した認証が含まれ、これによりユーザーがパスワードを入力する手間が省けます。 SSH を使用してパスワードなしのログインを設定するには、次の手順に従います。
1. 次のコマンドを使用して、ローカル システム上で新しい SSH キー ペアを生成します。
ssh-keygen -t rsa
このコマンドは、有名な RSA (Rivest-Shamir-Adleman) アルゴリズムを使用してキー ペアを生成します。 Diffie – Hellman Key Exchange (DHE)、デジタル署名アルゴリズム (DSA) など、他の任意のアルゴリズムを選択して使用できます。
2. キーを保存する場所を指定するよう求められます。保存するパスを入力するか、空白のままにしてデフォルトの場所「~/.ssh/id_rsa」に保存し、Enter キーを押します。
3. 次に、パスフレーズの入力を求められます。強力なパスフレーズを入力するか、空白のままにして Enter キーを押します。
4. キーが生成されると、キーの「randomart」とともに成功メッセージが表示されます。
5. 次に、このコマンドを使用して公開 SSH キーをリモート サーバーに転送します。 scp コマンドを使用して、公開 RSA キーを安全に転送することもできます。
ssh-copy-id <username>@<remote_server>
6. 上記の手順が完了したら、次の構文で SSH コマンドを使用して、パスワードなしでログインします。
ssh <username>@<remote_server_ip_address_or_domain_name>
SSH 構成ファイルを使用してサーバーに接続する
新しい SSH 接続が確立されるたびに、SSH コマンドは SSH 構成ファイルに保存されている構成に従って機能します。いくつかの編集マジックを使用すると、この SSH 構成ファイルを通じて、接続するリモート Linux サーバーとポートなどを指定できます。
1. Linux またはその他の任意の Linux テキスト エディターで Nano コマンドを使用して、ssh 構成ファイルを開きます。
sudo nano ~/.ssh/config
これにより、ユーザー固有の構成ファイルが開きます。すべてのユーザーの構成ファイルを開くには、次のコマンドを使用します。
sudo nano /etc/ssh/ssh_config
2. ここで、次の構文を使用して構成ファイルを編集します。
Host <remote_server_1_name>
ssh_option_1 value
ssh_option_2 value
Host <remote_server_2_name>
ssh_option_1 value
ssh_option_2 value
上記の構文では、ssh_options は ssh コマンドと組み合わせるオプションと同じです。構成ファイルの例を次に示します。
Host remote_1
HostName 192.168.1.10
User test1
Port 22
Host remote2
HostName 172.105.253.48
User root
Port 22
ここでは、2 つのリモート サーバーのエントリとそのオプションを作成しました。リモート サーバーの数とそのオプションを指定できます。
3. 構成ファイルの編集が完了したら、保存してエディタを終了します。
4. SSH 構成ファイルを使用してリモート サーバーに接続するには、次の構文を使用します。
ssh <remote_server_name>
たとえば、remote2 サーバーに接続するには、次のコマンドを使用します。
ssh remote2
よくある質問
Linux ですべての SSH 接続を一覧表示するには、次のコマンドを使用します:
ss -t -a
デフォルトでは、SSH サーバーはポート 22 での受信接続を許可します。別のポートで SSH を有効にするには、Linux テキスト エディターで /etc/ssh/ssh_config ファイルを開き、ポートを 1024 ~ 65536 の任意の値に設定します。






![2021 年に Raspberry Pi Web サーバーをセットアップする方法 [ガイド]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)





