はじめに
大学の研究室のUbuntuデスクトップに接続するために、自分のMacからSSH接続できるようにした。(現在は同じLAN内からのみ接続可能+パスワード認証)
この記事では、自分が行ったSSH接続するために行った手順をまとめてみる。
前提条件
- MacとUbuntuデスクトップが同じLAN(Wi-Fiまたは有線)に接続されていること
ステップ1: Ubuntuデスクトップの準備
まず、Ubuntuデスクトップ側でSSHサーバーをインストールし、設定を行う。
- OpenSSHサーバーのインストール
Ubuntuデスクトップのターミナルを開き、以下のコマンドを実行する。
$ sudo apt update
$ sudo apt install openssh-server
- SSHポートの変更(推奨)
デフォルトの22番ポートは攻撃の標的になりやすいため、任意のポート番号に変更することを推奨する。今回は例として 50000 番ポートを使用する。
$ sudo nano /etc/ssh/sshd_config
ファイル内の Port 22 の行を探し、# が付いていれば削除し、22 を 50000 に変更する。
-#Port 22
+Port 50000
- SSHサービスの再起動
設定変更を反映させるため、SSHサービスを再起動する。
$ sudo systemctl restart ssh
- ソケットアクティベーションの確認と無効化(補足)
一部のシステムでは、ssh.socket というソケットアクティベーション機能がSSH接続に干渉し、接続を妨げることがある。もし接続がうまくいかない場合、以下のコマンドで ssh.socket を無効化することで解決することがある。
$ sudo systemctl disable --now ssh.socket
このコマンドは、ssh.socket がポートを監視し、接続があったときに初めてSSHサービスを起動する「ソケットアクティベーション」を停止させるもの。通常、SSHサーバーは ssh.service が直接ポートを待ち受けて動作するため、この設定でより安定した接続が可能になる場合がある。
- UbuntuのIPアドレス確認
Macから接続するために、UbuntuのIPアドレスを確認しておく。
$ ip a
inet の後に続くアドレス(例: )を控えておく。
ステップ2: Ubuntuデスクトップのファイアウォール設定 (UFW)
UbuntuのファイアウォールUFWは、システムのセキュリティを向上させるために推奨される。SSH接続を許可する設定を行う。
- SSHポートの許可
変更したSSHポート 50000 を許可する。これは、UFWが有効な場合に、このポートからの接続のみを許可するための設定である。
$ sudo ufw allow 50000/tcp
- UFWの有効化(もしinactiveの場合)
UFWの状態を確認し、もし Status: inactive であれば、以下のコマンドでUFWを有効化する。UFW有効化後、50000番以外の着信はデフォルトでブロックされるため、必ず上記でポート許可ルールを追加してから有効化すること。
$ sudo ufw enable
「y」と入力してEnterキーを押す。
- UFWの状態再確認
UFWが正しく有効になり、SSHポートが許可されているかを確認する。
$ sudo ufw status verbose
Status: active となり、50000/tcp ALLOW Anywhere のルールが表示されていることを確認する。
ステップ3: MacからのSSH接続
MacのターミナルからUbuntuデスクトップに接続する。
- SSH接続コマンドの実行
以下のコマンドを実行し、Ubuntuのユーザー名、IPアドレス、そして指定したポート番号 50000 を使用して接続する。
$ ssh -p 50000 <Ubuntuのユーザー名>@<UbuntuのIPアドレス>
-
初回接続時の確認
初回接続時には、「The authenticity of host '...' can't be established.」というメッセージとフィンガープリントが表示される。これはセキュリティ上の確認であり、問題なければ yes と入力してEnterキーを押す。 -
パスワードの入力
Ubuntuデスクトップのユーザーパスワードを求められたら入力し、Enterキーを押す。
これで、MacのターミナルからUbuntuデスクトップへのSSH接続が確立される。
プロンプトが username@hostname:~$ のようになれば成功。
- 接続の解除
SSHセッションを終了するには、ターミナルで以下のいずれかのコマンドを入力する。
-
exit と入力して Enter
-
Ctrl + D
本記事で解説した接続方法はパスワード認証を使用している。パスワード認証は手軽であるが、推測されやすいパスワードを使用しているとブルートフォースアタック(総当たり攻撃)のリスクがある。
セキュリティをさらに強化するためには、公開鍵認証への移行を強く推奨する。公開鍵認証では、パスワードをネットワーク上に送る必要がなく、より安全な認証が可能である。
また、本記事はLAN内での接続に焦点を当てているが、LAN外からの接続(インターネット経由でのアクセス)も可能である。これにはルーターのポートフォワーディングやダイナミックDNS (DDNS) の設定が必要となる。
公開鍵認証の設定方法やLAN外からの接続方法については、今後の記事で書く予定。