AndroidスマホでSSH接続する方法|初心者向けステップバイステップ【2026年版】
この記事は「モバイルSSH完全ガイド」のクラスター記事です。
スマホからサーバーを触れるって、知ってた?
「SSHって、PCからやるものでしょ?」
ぼくも最初はそう思っていた。でも薬局で働きながらサーバーを管理していると、PCが手元にない場面に何度も遭遇する。障害通知が来たのに手元にあるのはスマホだけ——そんなとき、スマホからSSHでサーバーに入れたらどれだけ助かるか。
実はAndroidスマホからSSH接続するのは、思っているほど難しくない。アプリを入れて、接続先を登録して、鍵を設定する。ここまでやれば、あとはタップひとつでサーバーに入れる。
この記事では、Android初心者でもつまずかないように1ステップずつ手順を追って解説する。
そもそもSSHって何?(30秒で理解)
SSH(Secure Shell)は、離れた場所にあるコンピューターに暗号化された安全な通信路を通じて接続する仕組み。
身近な例えで言うと、自宅のPCの画面を遠隔で操作するリモートデスクトップの「テキスト版」みたいなもの。画面の絵は見えないけど、コマンド(文字の命令)を打ってサーバーを操作できる。
SSHが使われる代表的な場面はこんな感じ。
- 自宅や会社のサーバーの設定変更・ログ確認
- VPS(レンタルサーバー)の管理
- Claude CodeなどのAIコーディングツールの操作
- Raspberry Piなど小型コンピューターへのアクセス
つまり、スマホからSSHできる = スマホ1台でサーバーが操作できるということ。通勤中に障害対応したり、外出先からAIにコードを書かせたり、可能性はけっこう広い。
用意するもの
始める前に、以下の3つを確認しておこう。
| 必要なもの | 説明 |
|---|---|
| Androidスマホ | Android 10以降を推奨。ほぼすべての現行機種でOK |
| SSHクライアントアプリ | この記事で入れ方を解説する |
| 接続先のサーバー | IPアドレス(またはホスト名)、ユーザー名、ポート番号が必要 |
接続先のサーバーがまだない人は、この記事を読んで全体の流れを把握してから、VPSの契約やRaspberry Piのセットアップを進めるのがいいと思う。
Step 1: SSHクライアントアプリをインストールする
AndroidでSSH接続するには、まずSSHクライアントアプリが必要になる。
2026年現在、Google Playで入手できる主なSSHクライアントアプリはこちら。
| アプリ | 特徴 | 料金 |
|---|---|---|
| SSH Term | 日本語入力対応(IMEモード)、SFTP内蔵、鍵生成がワンタップ | 800円(買い切り) |
| Termius | クロスプラットフォーム対応、UIが洗練 | 無料(Pro: 月額$10) |
| ConnectBot | オープンソース、軽量 | 無料 |
| Termux | Linux環境丸ごと構築できる(上級者向け) | 無料 |
各アプリの詳しい比較は「Android SSHクライアントおすすめ5選」で解説しています。
この記事ではSSH Termを使って手順を説明する。理由はシンプルで、GUI操作だけでSSH接続の設定が完結するので、初心者がつまずきにくいから。
SSH Termのインストール手順
- Google Playで「SSH Term」を検索
- SSH Termをインストール
- アプリを起動する
これだけ。ConnectBotやTermiusも同じく、Google Playからインストールするだけで準備完了。
Termuxだけは少し事情が違う。ターミナルアプリなので、インストール後にpkg install opensshコマンドでSSHクライアントを別途入れる必要がある。SSH接続だけが目的なら、専用アプリの方がずっと手軽だ。
Step 2: 接続先のサーバー情報を確認する
SSHクライアントに登録するために、以下の情報を手元に用意する。
| 項目 | 例 | どこで確認できるか |
|---|---|---|
| ホスト名 or IPアドレス | 192.168.1.100 や example.com | サーバーの管理画面、VPSのダッシュボード |
| ポート番号 | 22(デフォルト) | サーバーのSSH設定(/etc/ssh/sshd_config) |
| ユーザー名 | ubuntu, root など | サーバー契約時のメール、管理画面 |
VPS(ConoHa、さくら、AWS Lightsailなど)を使っている場合は、管理画面のコンソール情報に書いてある。自宅のLinuxマシンならip addrコマンドでIPアドレスを確認できる。
外出先から自宅サーバーに接続したい場合
自宅のサーバーにインターネット経由で接続するなら、ルーターのポート開放が必要になる。ただし、ポート開放はセキュリティリスクが伴うので、個人的にはTailscaleの利用をおすすめする。
Tailscaleを使えば、ポート開放なしで自宅のマシンに安全にアクセスできる。個人利用は無料。VPN的なものだけど、設定がめちゃくちゃ簡単で、ぼくも毎日使っている。
詳しくは「Tailscale SSH × Claude Code|外出先から自宅PCでAI開発する方法」で解説しています。
Step 3: パスワード認証でまず接続してみる
いきなり公開鍵認証を設定するのはハードルが高いので、まずはパスワード認証で接続できるか試そう。
SSH Termでの接続手順
- アプリを開いて 「+」ボタンをタップ
- 以下を入力する
- ホスト: サーバーのIPアドレスまたはホスト名
- ポート:
22(変更していなければそのまま) - ユーザー名: サーバーのユーザー名
- 「接続」をタップ
- 初回は「このホストを信頼しますか?」と聞かれるので 「はい」 を選択
- パスワードを入力
ターミナル画面が表示されて、コマンドプロンプト($ や #)が見えたら接続成功。
# 試しにこんなコマンドを打ってみよう
whoami
# → ユーザー名が表示される
hostname
# → サーバー名が表示される
uname -a
# → OS情報が表示される
おめでとう。これでスマホからサーバーを操作できるようになった。
Termiusの場合
Termiusでも流れは同じ。「New Host」→ ホスト名・ユーザー名・パスワードを入力 → 「Connect」で接続できる。
ConnectBotの場合
ConnectBotは接続画面で ユーザー名@ホスト名:ポート の形式で入力する。例えば [email protected]:22 のように。
Step 4: 公開鍵認証を設定する(重要)
パスワード認証で接続できることを確認したら、次は公開鍵認証に切り替えよう。
なぜか。パスワード認証には2つの弱点がある。
- セキュリティ: パスワードは総当たり攻撃(ブルートフォース)で突破される可能性がある
- 利便性: 毎回パスワードを手入力するのが面倒
公開鍵認証なら、スマホに秘密鍵を持っておくだけで、パスワード入力なしで安全にログインできる。薬局でSSH接続するたびに長いパスワードを打っていた頃が懐かしい。鍵認証にしてからは、本当にワンタップで入れるようになった。
仕組みをざっくり理解する
公開鍵認証は「南京錠と鍵」の関係に近い。
- 公開鍵(南京錠)→ サーバーに置く。誰に見られても問題ない
- 秘密鍵(鍵)→ スマホに保管する。絶対に他人に渡さない
サーバーに置いた南京錠を、スマホの鍵で開ける——これが公開鍵認証の基本的な考え方。
SSH Termでの鍵生成手順
- アプリの 「鍵管理」 画面を開く
- 「鍵を生成」 をタップ
- 鍵タイプは Ed25519(デフォルト)のままでOK
- 生成完了。公開鍵をコピーするボタンが表示される
たったこれだけ。コマンドを一切打たずに鍵ペアが作れる。
ConnectBotの場合
ConnectBotでも設定 → 「公開鍵の管理」→「生成」で鍵を作れる。
Termiusの場合
Termius はSettings → Keychain → 「+」→ 「Generate」で鍵生成ができる。Ed25519を選ぼう。
公開鍵をサーバーに登録する
生成した公開鍵をサーバーの~/.ssh/authorized_keysファイルに追加する必要がある。
方法A: パスワード認証でログインして手動で追加
まだパスワード認証が有効なはずなので、スマホからSSH接続して以下を実行する。
# .sshディレクトリがなければ作成
mkdir -p ~/.ssh
chmod 700 ~/.ssh
# 公開鍵を追加(コピーした公開鍵を貼り付ける)
echo "ssh-ed25519 AAAA...(コピーした公開鍵)" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
SSH Termなら、IMEモードを使ってコピーした公開鍵をターミナルに直接ペーストできる。他のアプリだと長い文字列のペーストがうまくいかないことがあるので、PCからの操作の方が確実かもしれない。
方法B: PCからssh-copy-idを使う(PCがある場合)
PCが手元にあるなら、スマホの公開鍵をPCにコピーしてから以下を実行するのが楽。
ssh-copy-id -i スマホの公開鍵ファイル ユーザー名@サーバーIP
鍵認証で接続テスト
公開鍵の登録が終わったら、一度接続を切って、再度接続してみよう。パスワードを聞かれずにログインできたら成功。
Step 5: パスワード認証を無効化する(任意だけど推奨)
公開鍵認証で接続できることを確認したら、サーバー側でパスワード認証を無効にしておくとセキュリティが格段に上がる。
sudo nano /etc/ssh/sshd_config
以下の行を探して変更する。
PasswordAuthentication no
変更を保存したら、SSHサービスを再起動。
sudo systemctl restart sshd
注意: この設定をすると、秘密鍵を紛失したらサーバーにSSHログインできなくなる。VPSなら管理画面のコンソール機能から復旧できるけど、自宅サーバーなら直接キーボードとモニターを繋ぐ必要がある。秘密鍵のバックアップは忘れずに。
つまずきやすいポイントと対処法
実際にスマホからSSH接続すると、PCとは違う問題にぶつかることがある。ぼくが経験した主なトラブルと解決策をまとめておく。
「Connection refused」と表示される
サーバー側でSSHが起動していないか、ポート番号が間違っている可能性が高い。
# サーバー側で確認(別の手段でログインして)
sudo systemctl status sshd
# → active (running) と表示されればOK
# ポートの確認
sudo ss -tlnp | grep ssh
「Connection timed out」になる
ネットワーク的にサーバーに到達できていない。自宅サーバーに外から繋ごうとしている場合は、ルーターの設定かTailscaleの確認を。同じWi-Fiにいるのにタイムアウトする場合は、ファイアウォール(ufwやiptables)でポート22がブロックされていないか確認しよう。
接続中にすぐ切れる
スマホのSSH接続が不安定になる原因の多くは、OSのバッテリー最適化によるバックグラウンドプロセスの強制終了。
- SSH Termにはバックグラウンド接続維持機能があるので、設定で有効にしておく
- Androidの設定 →「バッテリー」→ SSHアプリの「バッテリー最適化」を無効にする
接続切れの問題について詳しくは「スマホのSSH接続が切れる原因と対策」を参照してください。
日本語が入力できない・文字化けする
多くのSSHクライアントでは、ターミナル内で日本語を直接入力できない。これはターミナルエミュレータとAndroid IMEの相性問題で、アプリ側の対応が必要になる。
SSH TermのIMEモードを使えばこの問題は解消されるけど、他のアプリを使っている場合は英語での操作が基本になる。
この問題の技術的な背景は「Termius Android 日本語入力がバグる?」で詳しく解説しています。
もっと快適にするためのTips
SSH接続ができるようになったら、次のステップとしておすすめしたいことが3つある。
tmuxを使う
SSH接続が切れてもリモート側のプロセスを維持できるtmuxは、スマホSSHの必須ツールと言っていい。
# サーバー側にtmuxをインストール
sudo apt install tmux
# セッション開始
tmux new -s work
# 作業する...
# セッションを抜ける(プロセスは動き続ける)
# Ctrl+B → D
# 後から再接続
tmux attach -t work
通勤中に作業を始めて、電車を降りるときにtmuxセッションを抜けて、会社に着いたら再接続——こういう使い方が本当に便利。
詳しくは「tmux実践ガイド|SSH×tmuxでリモート開発を劇的に快適にする」を参照。
Tailscaleで安全にアクセス
先ほども触れたけど、外出先から自宅サーバーに繋ぐならTailscaleが圧倒的に楽。ルーターのポート転送の設定が不要で、VPN経由で安全にアクセスできる。
Android版Tailscaleアプリをインストールして、サーバーとスマホの両方にTailscaleを入れておけば、100.x.x.xのプライベートIPで直接SSH接続できるようになる。
SFTPでファイル管理
SSH接続でコマンドを打つだけじゃなく、サーバー上のファイルをGUI的に閲覧・ダウンロードしたい場面もある。SSH TermやTermius(Pro版)にはSFTPブラウザが内蔵されているので、ファイルの確認やダウンロードがアプリ内で完結する。
まとめ
AndroidスマホからSSH接続するまでの手順を振り返ると、やることは意外とシンプル。
- SSHクライアントアプリをインストール
- 接続先のサーバー情報を入力
- パスワード認証で接続テスト
- 公開鍵を生成してサーバーに登録
- 鍵認証で接続できるか確認
ここまでの所要時間は、慣れれば10分くらい。初めてでも30分あれば十分だと思う。
スマホからサーバーを操作できるようになると、行動の自由度がかなり上がる。ぼくの場合は薬局にいるときの障害対応が圧倒的に楽になったし、最近はClaude Codeをスマホから動かして通勤時間を開発時間に変えている。
まずはパスワード認証で繋いでみるところから始めてみよう。