UbuntuにSSHサーバーを構築し、SSHに接続する手順【初心者向け】

遠隔地にあるLinuxサーバーや、クラウド上の仮想サーバー、VPSに接続するには、SSHを使用すると便利です。

SSHは、ネットワーク上で安全にリモートコンピュータにアクセスする場合や、遠隔地からのアクセスが必要な際に複数のユーザーが同じコンピュータにアクセスする場合に使用します

暗号化通信を利用してデータのやり取りを保護し、セキュリティが重視される場面にSSHが広く利用されています

本記事では、SSHを利用するにあたり、UbuntuにSSHサーバーを構築する方法SSHに接続するまでの手順を紹介します。

UbuntuVPSで利用するなら
ミライサーバー
\2週間無料・全プランSSD搭載/
ミライサーバーを無料で試す

SSHサーバーの構築

前提条件

今回は、仮想マシン上にUbuntuおよびSSHサーバーを構築します。

仮想マシンのスペックは以下のとおりです。

    • CPU:2vCPU
    • Memory:4GB
    • Disk:50GB

Ubuntu、Nginxは以下のバージョンを利用しています。

    • Ubuntuのバージョン:Ubuntu 22.04.2 LTS
    • Nginxのバージョン:OpenSSH_8.9p1

また、コマンドの標記については、実際に入力するコマンドを太字、コマンドを実行後に入力を求められる箇所については赤字、補足の内容を青字で記載しています。

Unix系OS専門のホスティングサービス「ミライサーバー」

SSHサーバーのインストール

今回はUbuntuにデフォルトで利用できるソフトウェアリポジトリを使用してSSHサーバーソフトウェアをインストールします。

SSHサーバーをインストールするには、管理者権限が必要です。

rootアカウントを使用するか、通常ユーザー(以下の例では、testuser)をsudoグループに追加しておきましょう。

# usermod -aG sudo testuser

次に、SSHサーバーソフトウェア(openssh-server)をインストールします。

以下の例では、先ほどsudoグループに追加した通常ユーザーを使って、sudoコマンドからopenssh-serverパッケージをインストールしています。

$ sudo apt update

$ sudo apt install openssh-server

インストールが完了すると、すでに起動した状態になります。

起動状態およびopenssh-serverのバージョンを確認します。

起動状態の確認

$ sudo systemctl status ssh

openssh-serverのバージョン確認

$ ssh -v

OpenSSH_8.9p1 Ubuntu-3ubuntu0.1, OpenSSL 3.0.2 15 Mar 2022

 

SSHサーバーが起動している状態で、別サーバーから接続できるようになります。

今回は別端末からTeratermを使用し、SSH経由で接続します。

接続が成功すると、ユーザー名とパスワードを聞かれます。

ユーザー名とパスワードを入力して、「OK」を押下します。

例では「testuser」としていますが、他のユーザーが存在していれば、そちらでもかまいません。

無事接続ができると、以下のようにプロンプトが表示されます。

Unix系OS専門のホスティングサービス「ミライサーバー」

SSHサーバーの起動・停止

SSHサーバーを操作する上での基本的なコマンドについて紹介します。

インストールした直後はすでにWebサーバーが起動した状態ですが、停止や起動、自動起動の設定を行いたい場合は、以下のコマンドを実行します。

操作コマンド
SSHサーバーの停止$ sudo systemctl stop ssh
SSHサーバーの起動$ sudo systemctl start ssh
SSHサーバーの再起動$ sudo systemctl restart ssh
設定のリロード$ sudo systemctl reload ssh
自動起動の有効化$ sudo systemctl enable ssh
自動起動の無効化$ sudo systemctl disable ssh

SSHの設定

SSHサーバーをインストールした直後は、セキュリティが弱い状態です。

ここでは、最低限セキュリティを確保するための設定を行います。

SSHの設定変更

SSHの設定ファイルは、「/etc/ssh/ssh_config」と、「/etc/ssh/sshd_config」の2つがあります。

ssh_configは「他のサーバーにsshで接続するとき」の設定ファイルであり、

sshd_configは「他のサーバーからsshで接続されるとき」の設定ファイルです。

今回は「/etc/ssh/sshd_config」の内容を更新します。

更新する際は、万が一不具合が発生しても設定を戻せるようにするため、バックアップをとっておきましょう。

rootユーザーになり、バックアップを取得

$ sudo su

※←プロンプトがシャープに変わる

# cp /etc/ssh/ssd_config /etc/ssh/sshd_config.bak

   ※バックアップを取得

sshd_configファイルを編集

# vi /etc/ssh/sshd_config

 

以下の設定を追加します。

rootユーザーでのログインを抑止(PermitRootLogin)

PermitRootLoginは、rootユーザーによる接続を許可するかどうかを設定します。

デフォルト「prohibit-password」は、公開鍵認証のみ有効です。

root権限は非常に強力なため、rootユーザーでのログインを抑止したい場合は、「no」を設定します。

パスワード未設定のユーザーの接続を抑止(PermitEmptyPasswords)

パスワードが設定されていないユーザー(空のパスワード)による接続を抑止する場合には、「no」を設定します。

ポート番号の変更(Port)

SSHポートはデフォルト「22」ですが、広く知れ渡っているため、プライベートポートに変更することでセキュリティを強化できます。

ここでは例として「10022」に変更しています。

公開鍵認証を有効化(PubkeyAuthentication)

公開鍵認証を使用する場合には、yesにします。

秘密鍵ファイルの設定(HostKey)

認証用の秘密鍵を使用する場合は、Hostkeyにパスを設定します。

パスワード認証の抑止(PasswordAuthentication)

パスワードによる認証を拒否します。

悪意のあるユーザーが外部からパスワードで侵入を試みるのを防ぐことができます。

パスワード認証を拒否する場合は、公開鍵認証による接続ができるようになってから、実施してください。

 

設定が完了したら、ファイルを保存し、openssh-serverを再起動します。

# systemctl restart ssh

Unix系OS専門のホスティングサービス「ミライサーバー」

SSH接続用の鍵の作成

SSHによる接続はパスワードを利用しても可能ですが、パスワードが知られてしまうと他人でも接続できてしまいます。

セキュリティを高めるには、公開鍵認証がおすすめです。

公開鍵認証については、こちらのコラムで詳しく解説しています。

公開鍵認証を設定し、より安全にSSH接続するようにしてください。

まとめ

今回はUbuntu上にSSHサーバーを構築し、設定を行う手順を解説しました。

SSHによる接続ができるようになると、クラウド上の仮想サーバーやVPS、遠隔地のサーバーが扱えるようになり、大変便利です

セキュリティを強化するためにも、公開鍵認証の設定も含め、理解するようにしておきましょう。

UbuntuをVPSで利用するならミライサーバー

ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。

ミライサーバーのVPSでは、高速処理が可能なSSD全プランに搭載しています。

OSは、UbuntuDebianAlmaLinuxなどの豊富なラインアップから選択することができます。

2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。

▼ミライサーバーについてはこちら▼Unix系OS専門のホスティングサービス「ミライサーバー」

VPSなら「ミライサーバー」

・全プランSSD搭載
・2週間無料

▶ ミライサーバーを無料で試す

関連記事

特集記事

TOP