4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GCE f1-micro インスタンスを介して reverse SSH 接続する

Last updated at Posted at 2017-06-01

漢なら GCE(Google Compute Engine) f1-micro インスタンスですね!

f1-micro インスタインスを介して, 外出先の PC からでもオフィスとか GPU クラスタとかのリモートに接続したいですね!

やりましょう!

Reverse SSH

今回は, とりあえずてっとりばやく環境が構築できる reverse SSH tunneling を使います.

構成はこんな感じになります.

+-------------+                 +----------+         +----------+
| remote node |  -------------> | f1 micro |  <----- | local PC |
+-------------+                 +----------+         +----------+
                  reverse SSH                   SSH

f1 micro のインスタンスでは, OS には, なんとなく CoreOS を選んでみました.

サーバー側設定

remote note 側での設定です. gcloud をインストールしてあるものとします.
こんな感じのスクリプトを作り, crontab で回すようにします.

pgrep -f "google_compute_engine" > /dev/null 2>&1 || gcloud compute --project "example.com:PROJECTNAME" ssh --zone "us-west1-a" "INSTANCE" -- -N -f -R 19998:localhost:22

既存に動いているプロセス判定はもっとスマートにしたいところ.

これにより, f1 micro インスタンスで, ポート 19998 に ssh すると, remote node にログインできるようになります.

ローカル PC 設定

gcloud コマンドを駆使して直接リモートに console ログインするのはなんかうまくいかなかったので, 一旦 gcloud ssh ~ とかして f1 micro インスタンスの IP アドレスと, 使っている SSH private 鍵を取得しておきます.

その後, ~/.ssh/config にホスト名記載します.
CoreOS では nc はインストールされておらず, 同様の機能のものとして ncat がインストールされているので, ncat を使うようにします.

Host f1-micro
	HostName xxx.xxx.xxx.xxx
	IdentityFile ~/.ssh/google_compute_engine
	ForwardAgent yes

Host remote-note
	ForwardAgent yes
	ProxyCommand ssh f1-micro ncat localhost 19998
	ServerAliveInterval 60
	ServerAliveCountMax 4

これで, 手元 local PC から,

$ ssh remote-node

とするとリモート PC にログインできるようになります.

(optional) OpenVPN を使う

接続したいノード数が増えてきたりしたら, OpenVPN に移行するのも検討してみてください.

GCE(Goole Compute Engine) CoreOS インスタンスで OpenVPN サーバを立てる
https://qiita.com/syoyo/items/f4ed1186b644dfdc8c0c

TODO

  • crontab で回すときに既存でプロセスが動いているときの pgrep を極める.
  • 証明書ベースログインとかしたい.
  • 優秀な若人が, f1 micro インスタンスを活用することで, 人類史上最速で優秀な GCE 若人が育成されるスキームを確立したい 日々精進あるのみですね.
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?