🔧 Programmierung 🕛 vor 2 Monaten 2 Min Lesezeit
0

Share .ssh/config with your devcontainer

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht




How to share your ~/.ssh/config with devcontainers



The purpose is to enable using git with your provider directly from the devcontainer.



The problem is when running on mac-OS you typically add UseKeychain yes to your config file. Which is a mac specific setting killing your ssh agent.



MacOS - first



Your ~/.ssh folder probably looks something like this:




CODE
❯ tree
.
├── config
├── hetzner_id_ed25519
├── hetzner_id_ed25519.pub
├── known_hosts
├── known_hosts.old
├── README.md
├── sukkerfrit.github
├── sukkerfrit.github.pub
└── test.sh






And the content of your config something like this:




CODE
Host tahh
HostName github.com
User git
AddKeysToAgent yes
IdentityFile ~/.ssh/sukkerfrit.github
IdentitiesOnly yes
ForwardAgent yes

Host hetzner-ktk-test
HostName xx.xx.xx.xx
User root
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/hetzner_id_ed25519






UseKeychain

Is a mac-OS specific SSH setting. We use it to save and fetch the SSH-key passphrase automatically.



BUT it doesn't work on Linux and will actually course an exception on load rendering using eg. git directly from your devcontainer impossible.



This image is just working on root which i normally never do. I use to create a container-user in my container - I guess I was just lazy today.



This is way I share my ~/.ssh/config with devcontainers.





1. Add host's ~/.ssh to docker as mount



My 'trick' is to just mount my host's .ssh folder as read only - but to eg. /root/.sshtemplate.



Then you don't end up editing your host's config.



devcontainer.json




CODE
{
"name": "some-funkey-name",
"dockerComposeFile": "docker-compose.yml",
"service": "development",
"workspaceFolder": "/xyz",
"postCreateCommand": "./.devcontainer/post-container-install.sh",
"mounts": [
"source=${localEnv:HOME}/.ssh,target=/root/.sshtemplate,type=bind,readonly,consistency=cached"
],






Change the target if you work on a different user.






2. Copy from .sshtemplate -> .ssh



copy-ssh-files.sh




CODE
#!/usr/bin/env bash
set -u

if [ -d /root/.sshtemplate ]; then
cp -rf /root/.sshtemplate/. ~/.ssh/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/* 2>/dev/null || true
fi









3. Remove lines with UseKeychain



remove-usekeychain-lines.sh




CODE
#!/usr/bin/env bash
set -u

# Remove UseKeychain (case-insensitive) from a config file if it exists
if [ -f "$1" ]; then
sed -i '/UseKeychain/I d' "$1"
echo "UseKeychain removed from $1."
fi









4. Create post install file



post-container-install.sh




CODE
#!/usr/bin/env bash
...
"$SCRIPTS_DIR/copy-ssh-files.sh"
"$SCRIPTS_DIR/remove-usekeychain-lines.sh" ~/.ssh/config






Enjoy!

Vollständiger Original-Artikel
Den kompletten Beitrag mit allen Details direkt auf dev.to lesen.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
6 Quellen
CVE-2022-44255 | TOTOLINK LR350 9.3.5u.6369_B20220309 buffer overflow (EUVD-2022-47204)
2 Quellen
CVE-2026-68426 | Linux Kernel up to 6.18.41/7.1.5/7.2-rc3 xfrm validate_xmit_skb_list use after free (Nessus ID 346426)
1 Quelle
Windows 11 Probleme mit gültiger Domänenanmeldung nach September-Update [Workaround]
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Share .ssh/config with your devcontainer

Thematisch verwandte Begriffe: Share, sshconfig, with, your · 6 Treffer

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...