Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

スマホから家PCにsshしたい

背景

ふとスマホ(android)から家PCにsshしたいと思った。
スマホから家PCをいじることができれば、外出先でもリッチな環境でちょっとした開発作業ができるのではないか。と。

試したこと①直接接続

まずはスマホ→家PCに直接sshを試みてみた。とりあえずググって出てきた情報を参考に色々設定を進めていったのだが壁にぶつかった。
当方IPv6プラスの通信環境でIODATAのルーターを使っているのだが、いろいろ調査したのだけれども外からアクセスがあったときにPCのローカルIPへ中継する設定ができなかった。ルーターのIPv6設定画面にポートを設定する項目が無い。もしかしたらルーターによってはできるのかもしれないが、この辺りはよく分からん。

結局、直接接続するのは諦めて、別の方法を模索した。
調べているとどうやらポートフォワーディングというのが使えるらしい。

試したこと②ポートフォワーディング

詳しい説明は他に譲るとして、要はポートフォワーディングをすることで外部から来た特定のポート番号宛のパケットを家PCへ転送することができる。これを利用すれば踏み台PCを用意して間接的に家PCにsshできる。実現するにはスマホと家PCからssh可能なPCが必要なのだけれど、これはGCP(GCE)を利用すればいける。しかもスペックを絞れば無料で運用可能。
Untitled Diagram.png

準備

  • GCP(GCE)の準備をする。 無料で利用できる構成でインスタンスを立てる。
  • スマホにTermux(あるいは他のLinuxエミュレーターやsshクライアント)を入れてGCPにsshできるようにする。
  • 家PCからGCPにsshできるようにする。

step1:

家PCからGCPにsshのトンネルを張る。具体的には次のことをする。
家PCに次のsshのconfigファイルがあったとして、

Host gcp
        HostName XXX.XXX.XXX.XXX
        User gcpuser
        IdentityFile ~/.ssh/gcpkey
        Port 11111
        TCPKeepAlive yes
        IdentitiesOnly yes

sshコマンド打つときに次のオプションを付ける。

ssh -R 22222:localhost:33333 gcp  

これでGCP上のlocalhost:22222に来た通信を家PC(YYY.YYY.YYY.YYY:33333)に飛ばせるようになった。

step2:

スマホからGCP(XXX.XXX.XXX.XXX:11111)にssh。
そしたらそのままlocalhost:22222に向けてssh。。。で完了!
これでスマホから家PCにsshすることが出来た。

備考

快適にキー入力できた方が良いので、Bluetooth接続のキーボードとこのアプリもあった方がいい。Ctrl+CでコピーなどPCと遜色ないキーボード操作ができるようになる。多分iphoneにも似たようなのがある。

問題

GCEの実体がアメリカにあるせいか挙動がラグい。スマホ→アメリカ→家PC→アメリカ→スマホ
の経路を辿るので文字入力したあと0.5秒経過くらいで画面に反映される。
使えないことはないがまぁまぁストレスなのでなにかしらの対策が必要かも。

最後に

もっと良い方法あったら教えてね。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?