外出先からAndroidタブレットで自宅PCにSSHでログインしてターミナルによる開発生活

やりたいことは表題のとおり。なんかこう、省エネで外から開発するのに最低限必要な、でも普段使いのブランジングとかには困らなくて、かさばらなくて……そういうのないかなぁMabは高いしなぁ、とか思っていたところ、タブレット良いのでは?という風に思われた。

まぁ現実的には色々と制約があるのだが、とりあえず最低限のことはできそう。

目次

環境および前提

  • Android
    • Lenovo Yoga Tab Plus
      • SoC: Snapdragon 8 Gen 3
    • システムバージョン 17.0.12.046
    • Android 15
  • ホストマシン
    • M2 Pro Mac mini
    • macOS 14.7.7
  • インフラ
    • Cloudflare Tunnelを使う
      • またかよ
        • 便利だからつい……
      • つまり独自ドメイン必須

今回いれたやつ

  • Termux

JuiceSSHなどが有名らしいんだが、使って見ると見た目はモダンだけど逆にわかりづらかった。Termuxのほうがターミナル民にとっては親しみやすいのではないかと思うがどうか。無料だし。

ただ、マルチユーザでやると、Termuxはプライマリユーザでないと使えないという制約があった……。

LAN内での接続

まずLAN内でやる準備。ホストマシン側は既に受け入れ準備できているものとする。

Androidの設定

まずTermuxをインストール。そしたら鍵認証の準備。pkgはaptのラッパーらしい。

pkg install openssh
ssh-keygen -t ed25519  # 鍵ペア生成 rsa でも別に

なんらかの手段でホストマシンに鍵を送る。自分はAndroidストレージへのアクセスを許可をして、鍵をコピーし、さらにDropbox経由で転送するというよくわからない手順をした。

termux-setup-storage   # Androidストレージへアクセス許可
# 公開鍵をMacに転送して設定

あとお好みでtmuxなど入れておくと良い。

pkg install tmux
pkg install emacs

ホストマシン

authorized_keysに公開鍵を追加する。

再びAndroid

ログイン実験。

ssh hogetaro@ホストマシンのIP

入れたらOK。

インターネットからの接続

LANがOKなら次はいよいよネットから。

Cloudflare Tunnel

例によってZero Trustから、ホストマシンのポート22に向けて送る設定をする。

ホストマシン

cloudflaredも入れて、受け入れ準備できているものとする、といったものの、一応鍵認証のみ、パスワード認証を受け付けない、程度のことは確認しておく。

Android

pkg install cloudflared

SSH over HTTPSとなるので、以下のように設定する。

# ~/.ssh/config に設定
Host 独自ドメイン
  ProxyCommand cloudflared access ssh --hostname %h
  User ユーザ名

そしたら以下で入れるかを確認する。

ssh 独自ドメイン

入れたらOK。

所感、課題など

とりあえずこれでターミナルライフを送れるようになる。そしてLenovo Yoga Tab PlusのPCモードはなかなか便利であるため、けっこう快適……に思うのだが、やはり日本語入力変換という壁が立ちはだかる。日本語使わなければいいという豪の者もいるかもしれないが、普通にClaude Codeに日本語で相談しているんでさすがに。ファイル名日本語のものだってあるわけなのだし。

また、僕の場合はHHKB US配列という制約があるため、キーの数は少ないしでなかなか苦戦している。Braveでは日本語入力できるのだが、どういうわけかtmuxではできない……操作が競合している可能性とかあるかもしれない(Ctrl + Spaceで切り替えだったので)。このへんまだ調査が必要だけれど、とりあえず別途かなぁ。

なんかもうMacBook買えばよいのではないか?という気持ちになりつつも、今あるものは使わないとの精神。

この記事をいいなと思っていただけた方、よければ高評価・チャンネル登録……はないので、コメント・SNSでシェア・ブックマーク、RSSフィード登録を、よろしくお願い致します。

コメント

コメントする

目次