LoginSignup
5
1

More than 1 year has passed since last update.

GitHub Codespaces 内に ssh する

Last updated at Posted at 2021-08-29

この記事は

GitHub Codepaces 内にローカル環境から ssh する方法です。
特に難しいことはありませんが、2021/8/25 現在、公式ドキュメント https://docs.github.com/en/codespaces に具体的な説明が見当たらないようなのでメモしておきます。

手順

VS Code + Codespaces を起動する

ブラウザ内ではなく VS Code で起動します。

2222 を Add Port する

「PORTS」に 2222 が登録されていなければ、Add Port で 2222 を登録します。

image.png

パスワード設定 (必要なら)

GitHub に SSH 公開鍵が登録してあれば、その公開鍵が Codespace 内の ~/.ssh/authorized_keys に置かれます。
よって、対応した秘密鍵がローカル環境にあればこの鍵でログインできます。素晴らしい。

もし公開鍵がなければ、 Codespace 上でパスワードを登録してそれを使えば OK です。

$ sudo passed $(whoami)

ssh する

ローカル環境に port forward されているので

$ ssh -p 2222 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null codespace@localhost

で ssh login できます。 

オプション類は ~/.ssh/config に書いておくと良いでしょう。

Host codespace
  Hostname localhost
  Port 2222
  User codespace
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null

これで

$ ssh codespace

だけで ssh できるようになります。

おまけ: 自前イメージで sshd を有効にする

標準の Codespaces 環境で sshd はこのあたりで設定しているようです。

.devcontainer を使った自前の環境で ssh を使いたい場合には参考にしてみてください。

    && bash /tmp/scripts/sshd-debian.sh \

ENTRYPOINT [ "/usr/local/share/docker-init.sh", "/usr/local/share/ssh-init.sh", "benv" ]
CMD [ "sleep", "infinity" ]

まとめ

  • GitHub Codespaces 内にローカル環境から ssh する方法を説明しました。
  • Codespaces の標準環境で sshd 設定している部分を紹介しました。自前のイメージを作るときの参考にどうぞ。
5
1
1

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
5
1