🦛
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を開き、歯車ボタンの設定を押し、右上の方の以下のようなアイコンをクリックすると

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しているのもポイント。これでマウントしているパスが多少変わっていてもなんとかなる。
Discussion