最近では、SSHがリモートLinuxサーバーにアクセスするためのデフォルトの方法になっています。
SSHはSecureShellの略で、2台のコンピューター間の通信をリモートで確立するために使用される強力で効率的で一般的なネットワークプロトコルです。そして、その名前の安全な部分を忘れないでください。 SSHはすべてのトラフィックを暗号化して、ハイジャックや盗聴などの攻撃を防ぎ、さまざまな認証方法と無数の構成オプションを提供します。
この初心者向けガイドでは、次のことを学びます。
- SSHの基本概念
- SSHサーバーのセットアップ(リモートでアクセスするシステム上)
- クライアントマシン(パーソナルコンピュータ)からSSH経由でリモートサーバーに接続する
SSHの絶対的な基本
構成プロセスを確認する前に、SSHの絶対的な基本概念を確認することをお勧めします。
SSHプロトコルは、サーバークライアントアーキテクチャに基づいています。 「サーバー」は、「クライアント」が通信チャネルを介して接続されることを可能にします。このチャネルは暗号化されており、交換は公開SSHキーと秘密SSHキーの使用によって管理されます。

OpenSSHは、Linux、BSD、およびWindowsでSSH機能を提供する最も人気のあるオープンソースツールの1つです。
SSHのセットアップを成功させるには、次のことを行う必要があります。
- サーバーとして機能するマシンにSSHサーバーコンポーネントを配置します。これはopenssh-serverによって提供されます パッケージ。
- リモートサーバーマシンに接続するマシンにSSHクライアントコンポーネントを配置します。これはopenssh-clientによって提供されます パッケージとほとんどのLinuxおよびBSDディストリビューションにはプリインストールされています。
サーバーとクライアントを区別することが重要です。他の人にSSH経由でシステムに接続してもらいたいという正当な理由がない限り、パーソナルコンピュータをSSHサーバーとして機能させたくない場合があります。
通常、サーバーとして機能する専用システムがあります。たとえば、Ubuntuサーバーを実行しているRaspberryPiです。 Raspberry PiでSSHを有効にして、ターミナルでSSHを使用してメインのパーソナルコンピューターからデバイスを制御および管理できるようにします。
その情報を使って、UbuntuでSSHサーバーをセットアップする方法を見てみましょう。
UbuntuでのSSHサーバーの構成
SSHの設定は複雑ではなく、いくつかの手順が必要です。
前提条件
- sudoを持つユーザー サーバーマシンの特権
- 必要なパッケージをダウンロードするためのインターネット接続
- ネットワーク内の少なくとも別のシステム。 LAN上の別のコンピューター、インターネット経由のリモートサーバー、またはコンピューターでホストされている仮想マシンの場合があります。
ここでも、SSHサーバーのインストールは、サーバーとして機能し、SSH経由でリモート接続するシステムで実行する必要があります。
ステップ1:必要なパッケージをインストールする
まず、ターミナルウィンドウを開いて、必要なコマンドを入力します。
新しいパッケージやソフトウェアをインストールする前に、Ubuntuシステムを更新して、最新バージョンを実行していることを確認してください。
sudo apt update && sudo apt upgrade
SSHサーバーを実行するために必要なパッケージは、OpenSSHのopenssh-serverコンポーネントによって提供されます:
sudo apt install openssh-server

ステップ2:サーバーのステータスを確認する
パッケージのダウンロードとインストールが完了すると、SSHサービスがすでに実行されているはずですが、確認するには、次のコマンドを使用します。
service ssh status
systemdコマンドを使用することもできます:
sudo systemctl status ssh
Activeという単語が強調表示された、このようなものが表示されるはずです。 q
を押します コマンドプロンプトに戻ります。

あなたの場合、サービスが実行されていない場合は、次のようにアクティブ化する必要があります:
sudo systemctl enable --now ssh
ステップ3:ファイアウォールを通過するSSHを許可する
Ubuntuには、 iptables のインターフェースであるUFW(UncomplicatedFirewall)と呼ばれるファイアウォールユーティリティが付属しています。 次に、ネットワークのルールを管理します。ファイアウォールがアクティブな場合、SSHサーバーへの接続が妨げられる可能性があります。
必要なアクセスを許可するようにUFWを設定するには、次のコマンドを実行する必要があります。
sudo ufw allow ssh
UFWのステータスは、sudo ufw status
を実行して確認できます。 。
この時点で、SSHサーバーは稼働しており、クライアントからの接続を待っています。
ローカルマシンからリモートシステムに接続する
ローカルLinuxシステムにはすでにSSHクライアントがインストールされているはずです。そうでない場合は、Ubuntuで次のコマンドを使用していつでもインストールできます:
sudo apt install openssh-client
Ubuntuシステムに接続するには、コンピューターのIPアドレスを知っており、ssh
を使用する必要があります。 次のようなコマンド:
ssh [email protected]
ユーザー名を変更する システム内の実際のユーザーとアドレス UbuntuマシンのIPアドレスに。
コンピュータのIPアドレスがわからない場合は、ip a
と入力できます。 サーバーの端末で出力を確認します。次のようなものが必要です:

ここに表示されているように、私のIPアドレスは 192.168.1.111です。 。 [メール保護]を使用して接続してみましょう フォーマット。
ssh [email protected]
SSHサーバーに初めて接続すると、ホストを追加するためのアクセス許可が求められます。 yes
と入力します Enterを押します 続行します。

すぐにSSHは、ホストが永続的に追加されたことを通知し、ユーザー名に割り当てられたパスワードを要求します。パスワードを入力し、 Enterを押します もう一度。

そして出来上がり! Ubuntuシステムにリモートでログインします!

これで、リモートシステムの端末で通常どおりに作業できます。
SSH接続を閉じる
接続を閉じるには、exit
と入力するだけです。 確認を求めずにすぐに閉じます。

UbuntuでのSSHの停止と無効化
SSHサービスを停止する場合は、次のコマンドが必要です。
sudo systemctl stop ssh
これにより、サービスを再起動するか、システムが再起動されるまで、サービスが停止します。再起動するには、次のように入力します:
sudo systemctl start ssh
ここで、システムの起動中に起動しないようにする場合は、次を使用します。
sudo systemctl disable ssh
これにより、現在のセッション中にサービスの実行が停止することはなく、起動時に読み込まれるだけです。システムの起動中に再起動する場合は、次のように入力します。
sudo systemctl enable ssh
その他のSSHクライアント
ツールsshは、LinuxからmacOSまでのほとんどの* nixシステムに含まれていますが、存在するオプションはこれらだけではありません。他のオペレーティングシステムから使用できるクライアントがいくつかあります。
- PuTTYは、Windowsユーザーの間で非常に人気のある無料のオープンソースSSHクライアントです。 UbuntuにPuTTYをインストールすることもできます。機能が豊富で、非常に使いやすいです。 WindowsステーションからUbuntuマシンに接続している場合は、PuTTYが最適なオプションです。
- JuiceSSHは、Androidユーザーにとってすばらしいツールです。外出先でUbuntuシステムに接続するためにモバイルクライアントが必要な場合は、JuiceSSHを試してみることを強くお勧めします。約10年前からあり、無料で使用できます。
- そして最後に、TermiusはLinux、Windows、macOS、iOS、Androidで利用できます。無料利用枠バージョンといくつかのプレミアムオプションがあります。多数のサーバーを実行していて、接続を共有しているチームと連携している場合は、Termiusが適しています。
まとめ
これらの手順を使用すると、UbuntuシステムでSSHをサーバーサービスとして設定して、コマンドラインを操作し、必要なタスクを実行するために、コンピューターにリモートで安全に接続できるようにすることができます。
他のWebサイトであるLinuxハンドブックには、SSHに関するさまざまな情報記事があります。ここから、以下を読むことをお勧めします:
- LinuxでSSHを使い始める
- SSH構成ファイルを使用して複数のSSH接続を管理する
- パスワードなしの認証のためにSSHサーバーに公開鍵を追加する
- SSHサーバーを保護するためのSSH強化のヒント
Linuxハンドブックには、初心者向けのSSHと実践的なラボを説明するプレミアムビデオコースがあります。これにより、トピックに関するより合理化された知識が得られます。
ハッピーリモートワーク!