Lubuntu 側をサーバ、MacBook Air 側をクライアント とした構成です。
やることは次の4点です。
- Lubuntu に SSH サーバを入れる
- Lubuntu 側で SSH を有効化・起動
- Lubuntu の IP アドレスを確認
- MacBook Air から SSH 接続する
1. SSHサーバーとは
AIエージェント用のリモートPCを使うには、「SSHサーバー」として使うことになります。
SSHは、かんたんに言えば「リモートでログインできる仕組み」。
SSHは「Secure Shell」の略です。
ネットワーク越しに、別のコンピュータを安全に操作するための仕組みです。
「SSHサーバー」とは、外部からのSSH接続を受け付ける側のプログラムです。
接続要求を待ち受け、相手が誰かを確認し、許可された場合だけ操作を受け付けます。
今回の構成では、Lubuntu側がSSHサーバーになります。
- MacBook Air は操作端末
- Lubuntu は隔離された作業場(AI エージェントは Lubuntu 側のみ)
- Git がファイルの安全網
「壊れてもいい箱」を一つ用意した設計です。
1.1. SSHクライアントとの関係
SSHは、必ずペアで動きます。
接続する側がSSHクライアント、
受ける側がSSHサーバーです。
MacBook Airのターミナルで実行するsshコマンドはSSHクライアントです。
一方、Lubuntuで動いているsshdというプログラムがSSHサーバーです。
Lubuntuにopenssh-serverをインストールしても、画面上の変化はほとんどありません。
しかし内部では、22番ポートで接続待ちを始めています。
パスワード認証から公開鍵認証に切り替えると、SSHサーバーの役割がより明確になりました。
SSHサーバーは、正しい鍵を持っているかどうかを確認しているわけです。
2. リモートPC構成での位置づけ
今回の構成では、SSHサーバーが唯一の操作窓口になります。
GUI操作は不要で、MacからのSSHだけが入口です。
壊れてもいい箱に、最小限の入口だけを用意する。
その中心にあるのがSSHサーバーです。
2.1. Lubuntu に SSH サーバをインストールする
Lubuntu を起動し、ターミナルを開きます。
sudo apt update
sudo apt install openssh-server
これで SSH サーバ(sshd) が入ります1。
確認します。
systemctl status ssh
active (running) と出ていれば正常です。
再起動後も SSH が有効にするには、起動時に SSH が立ち上がるようにします。
sudo systemctl enable ssh
2.2. Lubuntu の IP アドレスを確認する
Mac から接続するために、Lubuntu の IP が必要です。
ip a
#=> 例 inet 192.168.1.23/24Code language: PHP (php)
この 192.168.1.23 が接続先になります。
自宅LAN内であれば、これで十分です2。
2.3. MacBook Air から SSH 接続(パスワード)
Mac 側でターミナルを開きます。
ssh ユーザー名@192.168.1.23
Code language: CSS (css)
初回は指紋確認が出ますが、yes で問題ありません。
Lubuntu のログインパスワードを入力して接続できれば成功です。
ここまでで 最低限の SSH 接続は完成 です。
3. 公開鍵認証に切り替える
AI エージェント用途では、パスワード認証は使わない方が安全 です。
Mac 側で実行します3。
ssh-keygen -t ed25519
全部 Enter で問題ありません4。
ssh-copy-id user@192.168.1.23
Code language: CSS (css)
これでSSH接続先のLubuntu に公開鍵が送信されます5。
パスワードなしで入れれば成功です。
3.1. パスワード認証を無効化する(重要)
パスワード認証は、不正アクセスの攻撃にさらされることになるので、無効化しておいた方が安心です。
Lubuntu 側で SSH 設定(/etc/ssh/sshd_config)を編集します。
次を探して修正します。
PasswordAuthentication no
PermitRootLogin no
保存後、SSH 再起動。
sudo systemctl restart ssh
これで
・鍵を持っている Mac だけが接続可能6
・root ログイン不可7
になります。
4. セキュリティ的に最低限やっておくこと(ufw)
AI エージェントでの運用なので、ufwをインストールして、 SSH以外の通信を遮断しておきます。
Lubuntu 側で:
sudo apt install ufw
sudo ufw allow ssh
sudo ufw enable
4.1. VS Code のRemote-SSH で接続する
ここまでできていれば簡単です。
VS Code には、拡張機能「Remote – SSH」があります。
→ Remote-SSH: Connect to Host
→ user@192.168.1.23
以降は、ローカルで編集している感覚のまま、実体はリモートPC になります10。
5. 構成と次の現実的ステップ
SSH ができたら、次はこれです。
- Lubuntu に Git を入れる
- 作業専用ユーザーを作る(AI 用)
- AI エージェントを そのユーザーでのみ 実行
- sudo 権限を完全に剥奪11
- sshdは「SSH daemon」の略で、バックグラウンドで常駐してSSH接続要求を待ち受けるプログラムです。OpenSSH serverパッケージに含まれています。 – SSH 鍵 – ArchWiki
- セキュリティをさらに強化するには、SSHのデフォルトポート(22番)を変更することも検討してください。ポート番号を変更することで、自動スキャンによる攻撃の多くを回避できます。/etc/ssh/sshd_configでPortディレクティブを変更し、ufw設定も併せて更新する必要があります。 – UbuntuでSSHとSSHに関するファイアウォールの設定をする
- Ed25519は楕円曲線暗号を使用した署名方式で、RSA 3072bitと同等のセキュリティを256bitという短い鍵長で実現します。2014年のOpenSSH 6.5で導入され、現在最も推奨される鍵アルゴリズムです。 – SSH 鍵 – ArchWiki
- セキュリティのベストプラクティスとしては、パスフレーズの設定が強く推奨されます。秘密鍵が漏洩した際の最後の防御線となり、10文字以上の複雑なパスフレーズが推奨されています。macOSではキーチェーンに保存することで、毎回の入力を省略できます。 – SSH キーのパスフレーズを使う – GitHub ドキュメント
- ssh-copy-idは公開鍵を自動的にサーバーの~/.ssh/authorized_keysに追加するコマンドです。手動でコピーする場合は、ファイルのパーミッション設定(.sshディレクトリ: 700、authorized_keys: 600)に注意が必要です。 – 公開鍵認証(キーペア認証)の大事なところだけざっくりと網羅した | アガルートITパートナーズ
- パスワード認証を無効化することで、ブルートフォース攻撃のリスクを大幅に低減できます。ただし、公開鍵認証が正しく動作することを確認してから無効化してください。誤って設定すると、SSH接続ができなくなる可能性があります。 – SSHサーバを公開鍵認証にしたい | 慶應義塾理工学情報センター(KIC)
- rootユーザーでの直接ログインを禁止することは、重要なセキュリティ対策です。攻撃者がrootアカウントを直接狙うことを防ぎ、一般ユーザーでログイン後にsudoで権限昇格する方式が推奨されます。 – SSH 構成を安全に保護するための重要な方法 – SSL.com
- ufwを有効化する前に、必ずSSH接続を許可してください。SSH許可を設定せずにufwを有効化すると、リモートから接続できなくなり、サーバーから締め出される危険性があります。さらにセキュリティを高めるには、「ufw limit ssh」でレート制限を設定し、ブルートフォース攻撃を防ぐことが推奨されます。 – Ubuntu 環境の ufw 設定まとめ | LAZY DEVELOPER
- ufwはデフォルトで「すべての受信を拒否、すべての送信を許可」するホワイトリスト方式です。SSH以外のサービス(Webサーバーなど)を運用する場合は、必要なポート(HTTP: 80、HTTPS: 443など)も個別に許可する必要があります。 – Ubuntuでファイアウォールを設定する基本ガイド|しばけ~ブログ
- VS CodeのRemote-SSH拡張機能を使用すると、ローカルで編集しているような感覚で、リモートサーバー上のファイルを直接編集できます。ターミナルもリモート環境で実行されるため、開発環境の一元管理が可能になります。 – SSH公開鍵認証の完全実践ガイド:初回接続から自動化まで、つまずきポイントを全解決 | ちょげぶろぐ
- 作業専用ユーザーのsudo権限を剥奪するには、visudoコマンドでsudoers設定から該当ユーザーを除外します。AIエージェントなどの自動実行環境では、必要最小限の権限のみを付与する「最小権限の原則」が重要です。 – SSHキーのメリット・デメリットを徹底解説!作成方法や注意点も詳しく紹介 – システム開発のプロが発注成功を手助けする【発注ラウンジ】