こんにちは、インフラエンジニアのryuです。
今回の記事では、Linuxへリモート接続するためのSSHの設定方法を、初心者向けにわかりやすく解説します。
サーバーを構築すると、別のパソコンからSSHで接続して操作する場面が多くあります。しかし、初めて設定すると「どのパッケージを入れるの?」「接続できないときは、どこを確認するの?」と迷いやすいのではないでしょうか。
この記事では、Ubuntu・Debian系LinuxへOpenSSH Serverをインストールし、Windows、macOS、Linuxから接続するまでの流れを解説します。
SSHの設定方法を詳しく解説¶
SSHの基本的な設定手順は、次のとおりです。
- LinuxへOpenSSH Serverをインストールする
- SSHサービスの状態を確認する
- サーバーのIPアドレスを確認する
- 別のパソコンからSSHで接続する
- 必要に応じて公開鍵認証を設定する
初めて試す場合は、同じ家庭内LANや検証用ネットワークにあるLinuxへ接続するところから始めましょう。
SSHとは?¶
SSHは、Secure Shellの略です。ネットワークを通して別のコンピューターへログインし、コマンドを実行するためのプロトコルです。
SSHによる通信は暗号化されるため、認証情報や通信内容を保護しながらサーバーを操作できます。
SSHは、主に次のような場面で使われます。
- Linuxサーバーを遠隔操作する
- AWSのEC2へ接続する
- ルーターやスイッチを設定する
scpやsftpでファイルを転送する- Gitサーバーへ公開鍵を使って接続する
SSHは、クライアントとサーバーに分かれています。接続する側のパソコンではSSHクライアントを使用し、接続される側のLinuxではSSHサーバーを動かします。
OpenSSHでは、クライアントコマンドがssh、サーバープロセスがsshdです。
UbuntuへOpenSSH Serverをインストールする¶
今回は、UbuntuまたはDebian系Linuxを例に進めます。
最初にパッケージ一覧を更新します。
sudo apt update
続いて、OpenSSH Serverをインストールします。
sudo apt install openssh-server
確認を求められた場合は、内容を確認してYを入力します。

接続する側でSSHクライアントだけを利用したい場合は、次のパッケージです。
sudo apt install openssh-client
サーバーとして接続を受け付けるには、openssh-serverが必要です。似た名前なので注意しましょう。
SSHサービスの状態を確認する¶
インストール後は、SSHサービスが起動しているか確認します。
sudo systemctl status ssh
active (running)と表示されていれば、SSHサーバーは動作しています。
起動していない場合は、次のコマンドを実行します。
sudo systemctl start ssh
OSの起動時にSSHも自動起動させる場合は、次のコマンドです。
sudo systemctl enable ssh
待ち受けているポートを確認する場合は、次のように実行できます。
sudo ss -tlnp | grep ':22'
SSHでは、標準でTCPの22番ポートを使用します。
サーバーのIPアドレスを確認する¶
別のパソコンから接続するには、SSHサーバーのIPアドレスが必要です。
ip address
短い形式では、次のコマンドも使えます。
hostname -I
たとえば、192.168.1.50と表示された場合は、そのアドレスを接続先として使用します。
仮想マシンへ接続する場合は、VirtualBoxやVMwareのネットワーク方式にも注意してください。NATだけではホスト側から直接接続できない構成もあります。
SSHの設定ファイルを確認する¶
SSHサーバーの主な設定ファイルは、次の場所にあります。
/etc/ssh/sshd_config
クライアント側のssh_configと名前が似ていますが、サーバー側はsshd_configです。
Ubuntuでは、次のディレクトリへ設定ファイルを追加する方法もあります。
/etc/ssh/sshd_config.d/
設定を変更する前に、バックアップを作成しておきましょう。
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
編集する場合は、viなどを使用します。
sudo vi /etc/ssh/sshd_config
初心者が確認しておきたい主な設定は次のとおりです。
Port 22
PubkeyAuthentication yes
PasswordAuthentication yes
PermitRootLogin no
ディストリビューションやバージョンによって初期値は異なります。コメントアウトされている項目でも、内部の標準値が適用される場合があります。
インターネットへ公開するサーバーでは、公開鍵認証を利用し、rootでの直接ログインを許可しない構成が基本です。
設定を変更したら構文を確認する¶
sshd_configを編集した後は、設定ファイルに誤りがないか確認します。
sudo sshd -t
何も表示されなければ、基本的には構文エラーがありません。
問題がなければ、SSHサービスを再起動します。
sudo systemctl restart ssh
リモート接続中に設定を変更する場合は注意してください。設定を間違えると、再接続できなくなる可能性があります。
現在の接続を残したまま別のターミナルから接続を試し、正常にログインできることを確認してから作業を終了すると安全です。
WindowsからSSH接続する方法¶
現在のWindows 10やWindows 11では、OpenSSHクライアントを利用できます。
PowerShellまたはWindows Terminalを開き、次の形式で実行します。
ssh ユーザー名@IPアドレス
たとえば、ユーザー名がryu、サーバーのIPアドレスが192.168.1.50の場合は次のとおりです。
ssh ryu@192.168.1.50
初回接続時には、接続先のホスト鍵を信頼するか確認されます。接続先が正しいことを確認し、問題がなければyesと入力します。
その後、Linuxユーザーのパスワードを入力します。パスワードは画面に表示されませんが、そのまま入力してEnterを押してください。
Tera Termから接続する¶
GUIで操作したい場合は、Tera TermなどのSSHクライアントも利用できます。
Tera Termを起動し、ホスト欄へサーバーのIPアドレスを入力します。サービスはSSHを選び、TCPポートは通常22番を指定します。

初回接続時は、サーバーのホスト鍵に関する警告が表示されます。

接続先が正しいことを確認したうえで続行し、Linuxのユーザー名とパスワードを入力します。

現在はPowerShellやWindows Terminalのsshコマンドでも接続できるため、使いやすい方法を選びましょう。
macOS・LinuxからSSH接続する方法¶
macOSやLinuxでも、ターミナルから同じ形式で接続できます。
ssh ユーザー名@IPアドレス
SSHのポート番号を22番以外へ変更している場合は、-pオプションを使用します。
ssh -p 2222 ryu@192.168.1.50
接続後は、次のコマンドで現在のユーザー名やホスト名を確認できます。
whoami
hostname
複数のサーバーへ接続するときは、コマンドを実行する前にホスト名やプロンプトを確認しましょう。
公開鍵認証を設定する¶
実際のサーバー運用では、公開鍵認証がよく使われます。
接続元のパソコンで鍵ペアを作成します。
ssh-keygen -t ed25519
秘密鍵と公開鍵が作成されます。秘密鍵は他人へ渡さず、安全に管理してください。
LinuxやmacOSでは、次のコマンドで公開鍵をサーバーへ登録できます。
ssh-copy-id ryu@192.168.1.50
登録後、SSHで接続できることを確認します。
ssh ryu@192.168.1.50
公開鍵認証で接続できることを確認してから、必要に応じてパスワード認証を無効化します。
PasswordAuthentication no
PermitRootLogin no
設定後は、sudo sshd -tで確認してからSSHサービスを再起動してください。
SSHで接続できない場合の確認方法¶
SSHで接続できない場合は、表示されたエラーごとに原因を切り分けます。
Connection refused¶
SSHサービスが動いていない、または指定したポートで待ち受けていない可能性があります。
sudo systemctl status ssh
sudo ss -tlnp | grep ':22'
Connection timed out¶
IPアドレスが間違っている、通信経路がない、ファイアウォールやクラウドのセキュリティグループで遮断されている可能性があります。
Permission denied¶
ユーザー名、パスワード、秘密鍵、公開鍵の登録内容など、認証に問題がある可能性があります。
サーバー側のログは、次のコマンドで確認できます。
sudo journalctl -u ssh
リアルタイムで確認する場合は次のとおりです。
sudo journalctl -fu ssh
ネットワークの問題と認証の問題を分けて調査することが重要です。
SSHを実際に操作しながら学ぶ¶
SSHは、コマンドを読むだけでなく、サーバーを構築して接続することで理解しやすくなります。
InfraAcademyのLinux入門講座では、Linuxコマンド、ユーザー管理、権限、サービス、ログ、SSHなどをブラウザ上の環境で実践しながら学習できます。
SSH通信に必要なIPアドレス、ポート番号、ルーティング、ファイアウォールなどを学びたい方は、ネットワーク入門講座もおすすめです。
また、SSHを使ってEC2へ接続し、クラウド上にLinuxサーバーを構築したい方は、AWS講座へ進むと、Linuxとネットワークの知識をAWS環境へつなげられます。
SSHの設定方法まとめ¶
今回は、LinuxへSSHでリモート接続する方法を解説しました。
- Ubuntuでは
openssh-serverをインストールする systemctl status sshでサービスの状態を確認する- サーバー側の設定ファイルは
/etc/ssh/sshd_config - 設定変更後は
sshd -tで構文を確認する - Windows、macOS、Linuxから
ssh ユーザー名@IPアドレスで接続できる - 実際の運用では公開鍵認証を利用し、rootログインを制限する
- 接続できない場合は、サービス、ポート、ネットワーク、認証を確認する
まずは検証用のLinuxへOpenSSH Serverをインストールし、同じLAN内のパソコンから接続してみましょう。
自分でSSHサーバーを起動し、接続エラーも確認することで、Linuxのリモート管理とネットワーク通信の仕組みを実践的に理解できるようになります。



