remote.it を使って IBM Cloud VPC 環境にアクセスする (Ubuntu へ ssh 編)

# はじめに

投稿者および所属組織は remote.it とは完全に無関係です。
この投稿は remote.it の利用を投稿者および所属組織が推奨するものではありません。
remote.it で IBM Cloud VPC に接続できないかと問い合わせを受けたので検証作業を行っただけのものです。

remote.it は IBM Cloud から認識していないサービスです。remote.it を利用した IBM Cloud への接続について IBM Cloud としては 一切サポートできません。

remote.it の評価や利用の判断は、閲覧者の責任で実施してください。

なお GUI アクセスに関しては「 [remote.it を使って IBM Cloud VPC 環境にアクセスする (Ubuntu XRDP 編)](https://qiita.com/6onoda/items/b842b5d3b8e876de3cae)」を書きました。
こちらも参考にしてください。

# 今回の目的

IBM Cloud® Virtual Private Cloud (VPC) では、ネットワーク性能の高い IaaS 環境です。
こちらの環境へアクセスする場合、専用線であるDirect Link や Site to Site VPNなどいくつかの方法が考えられます。
サイト間接続でない場合「フローテングIP」や「Client to Site VPN」での接続が考えられます。
ただ、直接インスタンスにパブリックIP経由でのアサインを可能とする「フローテングIP」は、セキュリテイとして不安を感じられる場合もあり、「Client to Site VPN」は Secrets Manager という追加サービスが必要になります。

* [クライアントとサイト間の VPN サーバーについて](https://cloud.ibm.com/docs/vpc?topic=vpc-vpn-client-to-site-overview)
* [IBM Cloud：Client to Site型VPNでVPC環境に接続する (Secrets Manager)](https://qiita.com/takason/items/3d04e4e31daae4def1d7)

そんな時に [remote.it](https://ja.remote.it/) は IBM Cloud に使えないのかと聞かれたので検証してみました。

# remote.it へのログオン
メインの日本語サイトは「[https://ja.remote.it/](https://ja.remote.it/)」です。
下記のようにメッセージされています。

> VPNと手動によるネットワーク管理を置き換え、同時にZero Trustを実現します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/ee4a8298-345a-e443-6087-847584f45454.png)

個人利用・一定台数であれば無用利用できるようです。

[https://app.remote.it/#/sign-up](https://app.remote.it/#/sign-up)でセットアップに移動します。

認証は Google 認証か、メール・アドレスが使えます。
Google 認証の場合、特にアカントと作成する必要はありません。
Google 認証を使わない場合は[リンクよりサインアップ](https://app.remote.it/#/sign-up)を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/c2f3551b-81fb-7ec2-be23-557b7c0179c2.png)

今回はGoogle 認証を使いました。
Gmailにメールが届きました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/42b65acf-334d-0d42-9d1d-2aa9a8e98129.png)

# remote.it 側でのデバイスの追加

ログインすると、このような画面に切り替わります。
デフォルトで AWS にあるデモ用サイトが登録されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/32851669-18be-d692-ef6f-01db1f2471b9.png)

左上の「＋」でデバイスを追加します。Linuxをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/e445b9c9-dc6a-7fb9-8f83-a3e7c0764cd6.png)

接続先で実行する登録コードを含んだコマンドが表示されます。
後で使用するのでコピーしておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/e6ed3fa0-befe-4c58-f57b-e7875d14ceed.png)


# IBM Cloud 側での準備

IBM Cloud 側での準備として、必要なのは VSI をデプロイする サブネットにパブリック・ゲートウェイを接続しておくことです。

VPC 環境の構築やサブネットへのパブリック・ゲートウェイの接続は、こちらをご覧ください。

* [IBM Cloud Virtual Private Cloud (VPC) 構築実践チュートリアル](https://qiita.com/6onoda/items/06f9a4b1090d05ea0813)

# VPC 環境への VSI のオーダー

## ディストリビューションの選択

[https://cloud.ibm.com/vpc-ext/provision/vs](https://cloud.ibm.com/vpc-ext/provision/vs) で VPC VSI をオーダーします。

今回は Ubuntu 22.04 でテストしてみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/103f4554-5d95-a6e3-61f2-0e027c8e53c0.png)

jq が remote.it パッケージ導入の前提ですが、CentOS 7 の標準 Repo に jq が含まれていません。
そのため、検証を単純にするために Ubuntu 22.04 でテストしました。
前提を正しく満たすように構成すれば、他のディストリビューションでも OK なはずです。

ユーザー・データに先ほどのコマンドと含むシェルコマントとしてペーストします。

```
#!/bin/sh
R3_REGISTRATION_CODE="XXXXXXX-XXX-XXXX-XXXX-XXXXXXXXX" sh -c "$(curl -L https://downloads.remote.it/remoteit/install_agent.sh)"
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/2312b801-6437-f994-63f5-16998f7a851c.png)

## パブリック・ゲートウェイに接続されたサブネットの選択

もうひとつのポイントは、パブリック・ゲートウェイに接続されたサブネットを選ぶことです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/b4a4862c-5937-142b-b366-4a16020ef4dd.png)

これで VSI をデプロイします。

# クライアントからの接続

VSI の起動後、remote.it パッケージの導入・起動が成功すると VSIから remote.it へ自動的に通信が開始されます。
すると、クライアント側の画面がコマント表示から接続用に自動的に切り替わります。

「CONNECT」をクリックして接続します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/6f47b8c5-846b-4f14-7cf3-a8ed497252d2.png)

Proxy である接続先のホストとポートが表示されます。
なお、表示されるホストとポートは固定ではありません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/dfd1fff1-6c66-8801-3d5f-0888e61a65fe.png)

sshで表示されたホスト＋ポートに接続します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/0e6f03da-f151-8785-e4d3-244f93d3e1e5.png)

フローティングIpを割り振っていない(外部公開の IP アドレスを持っていない) VSI に外部から容易な設定で接続できることが確認できました。

# もう一度、注意

投稿者および所属組織は remote.it とは完全に無関係です。
この投稿は remote.it の利用を投稿者および所属組織が推奨するものではありません。
冒頭にも述べましたが remote.it で IBM Cloud VPC に接続できないかと問い合わせを受けたので検証作業を行っただけのものです。

remote.it は IBM Cloud から認識していないサービスです。remote.it を利用した IBM Cloud への接続について IBM Cloud としては 一切サポートできません。

remote.it の評価や利用の判断は、閲覧者の責任で実施してください。