🦛

Gitpod OpenVSCode Server で Terminal 使うときに便利に

に公開

概要

GitpodのOpenVSCode Serverが便利で好きである。
セキュリティを考えると大事な環境ではさすがに使えないが、自宅のサーバなんかを管理するときにこれをインストールすると、Webブラウザ以外の何かを起動する必要がないので非常に簡単。そして、Dockerで簡単にLinuxサーバ上に導入できる。

ただ、Terminalを起動すると、Gitpodコンテナ上のShellに入ることになるので、いちいちホストのSSHにつなぎ直す手間があったのが煩わしかった。ホストSSHをデフォルトにしたいなあと思ってたら調べたら意外とできた。

前提

Linuxサーバ上に以下のようなDokcerfileを用いたコンテナを常時稼働している。

FROM gitpod/openvscode-server:latest

USER root

RUN apt update && \
    apt install -y ssh && \
    rm -rf /var/lib/apt/lists/* && \
    apt clean

設定

GitpodのWebIDEを開き、歯車ボタンの設定を押し、右上の方の以下のようなアイコンをクリックすると

alt text

settings.json が開く。ここに設定した内容はブラウザのローカルストレージとか、そっち側に保存されているっぽく、アクセスするPCが変わるとやり直しになる。

ここに以下のような設定を書く。

{
    "terminal.integrated.profiles.linux": {
        "bash": {
            "path": "bash",
            "icon": "terminal-bash"
        },
        "Host Bash": {
            "path": "/usr/bin/ssh",
            "args": [
                "-t", "-i", "/home/xxxxxxx/.ssh/xxxxxxxx.pem", "xxxxxxx@<<ホストのIP>>",
                "cd $(echo '${workspaceFolder}' | sed 's|/home/workspace|/home/xxxxxxx|') && exec bash"
            ],
            "icon": "cloud"
        }
    },
    
    // デフォルトを「Host Bash」に指定します
    "terminal.integrated.defaultProfile.linux": "Host Bash"
}

これでひと手間減って、かなり快適になった。

ホームディレクトリをSSH先のものに置き換えるために、argsの中でcdしているのもポイント。これでマウントしているパスが多少変わっていてもなんとかなる。

Accenture Japan (有志)

Discussion