こんにちは。今回は、VSCodeの開発コンテナ(Dev Container)からGitHubにSSHで接続して、Git操作できるようにする方法を、ステップバイステップでまとめました。
DockerやDev Containerを使ってローカル開発環境を整えている方は、GitHubへの接続設定もコンテナ側で行う必要があります。HTTPS接続ではなく、SSH接続を使うことで毎回のトークン入力が不要になり、快適な開発が可能になります。
✅ 前提条件
- GitHub アカウントを持っている
- Docker 環境が整っている
- VSCode で Dev Container を使って開発している
- 開発コンテナに
git
がインストール済み(apt install git
などで)
🧭 手順まとめ
1. 開発コンテナに入る
VSCode の Dev Container(Remote Containers)を立ち上げて、コンテナ内のターミナルを開きます。
# 例
root@container-name:/app#
2. 開発コンテナ内で SSH鍵を作成する
ssh-keygen -t ed25519 -C "your_email@example.com"
- 保存先の指定はそのまま Enter(例:
/root/.ssh/id_ed25519
) - パスフレーズは必要に応じて(セキュリティ重視なら設定推奨)
3. 公開鍵の中身を確認する
cat ~/.ssh/id_ed25519.pub
表示された**公開鍵(ssh-ed25519
で始まる長い1行)**をすべてコピーします。
⚠️ この公開鍵は GitHub に登録して使うものです。秘密鍵(id_ed25519
)は絶対に公開しないようにしましょう。
4. GitHub に SSH 公開鍵を登録
GitHub にログインし、以下の手順で SSH キーを追加します。
- 右上アイコン →
Settings
- 左メニュー
SSH and GPG keys
→New SSH key
-
Title
: 任意(例:DevContainer
) -
Key
: コピーした公開鍵を貼り付ける -
Add SSH key
をクリック
5. SSH接続確認(初回)
ssh -T git@github.com
初回のみ以下のような確認が出ます:
Are you sure you want to continue connecting (yes/no)?
→ yes
と入力
成功すると:
Hi your-username! You've successfully authenticated, but GitHub does not provide shell access.
と表示されます。
6. リモートURLをSSH形式に変更
HTTPS形式のままだと毎回トークンが必要になります。SSH形式に変更しておきましょう。
git remote set-url origin git@github.com:your-username/your-repo.git
確認:
git remote -v
↓
origin git@github.com:your-username/your-repo.git (fetch)
origin git@github.com:your-username/your-repo.git (push)
7. Git操作OK!
あとは通常通りの Git 操作ができます!
git pull origin main
git push origin main
💡補足:dubious ownership
エラーが出た場合
コンテナ内で Git を使おうとしたとき、こんなエラーが出ることがあります:
fatal: detected dubious ownership in repository at '/app'
この場合は以下のコマンドで対処できます:
git config --global --add safe.directory /app
✅ まとめ
項目 | メリット |
---|---|
SSH接続 | 毎回の認証不要、CI/CDにも最適 |
HTTPS接続 | シンプルだが、毎回トークン入力が必要 |
SSH接続は最初の設定が少しだけ手間ですが、一度設定すれば非常に快適です。特にDocker開発環境やCIとの相性が抜群なので、ぜひ試してみてください!
🔒 最後に(セキュリティメモ)
- 秘密鍵(
id_ed25519
)は絶対に漏洩しないように! - 記事やブログで公開するのは必ず公開鍵(
.pub
)だけにすること! - セキュリティが心配な場合は、鍵をパスフレーズ付きで作成し、
ssh-agent
などを使って安全・便利に運用しましょう。