Files
trade-iac/doc/step-001-auto-ssh-add-baremetal-key-after-reboot.txt

69 lines
2.1 KiB
Plaintext

Step 001: Auto-dodawanie klucza SSH do ssh-agent po restarcie (VPS -> baremetal)
Cel:
- Po restarcie VPS (bez recznego ssh-add) klucz prywatny do baremetala ma byc automatycznie dodany do ssh-agent.
- To jest wygodne, gdy po WG chcesz robic deploy/Ansible/ssh bez interakcji.
Wymagania:
- VPS z systemd (Debian/Ubuntu).
- Klucz prywatny jest na VPS, np. ~/.ssh/mevnode_baremetal
- Klucz NIE powinien miec passphrase (inaczej ssh-add bedzie chcial hasla i usluga oneshot padnie).
0) Plik klucza (prawa)
chmod 600 ~/.ssh/mevnode_baremetal
1) Wlacz "linger" dla usera (zeby user services startowaly po boot bez logowania)
sudo loginctl enable-linger user
2) Utworz usluge ssh-agent (systemd --user)
mkdir -p ~/.config/systemd/user
cat >~/.config/systemd/user/ssh-agent.service <<'EOF'
[Unit]
Description=SSH agent
[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
[Install]
WantedBy=default.target
EOF
3) Utworz usluge ssh-add dla klucza do baremetala (systemd --user)
Uwaga: dodajemy ExecStartPre, zeby poczekac az socket agenta bedzie gotowy.
cat >~/.config/systemd/user/ssh-add-mevnode.service <<'EOF'
[Unit]
Description=ssh-add mevnode_baremetal
After=ssh-agent.service
Requires=ssh-agent.service
[Service]
Type=oneshot
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStartPre=/usr/bin/sh -c 'for i in $(seq 1 50); do [ -S "$SSH_AUTH_SOCK" ] && exit 0; sleep 0.1; done; echo "SSH_AUTH_SOCK not ready: $SSH_AUTH_SOCK" >&2; exit 1'
ExecStart=/usr/bin/ssh-add %h/.ssh/mevnode_baremetal
RemainAfterExit=yes
[Install]
WantedBy=default.target
EOF
4) Reload i wlacz autostart
systemctl --user daemon-reload
systemctl --user enable --now ssh-agent.service ssh-add-mevnode.service
5) Sprawdz dzialanie
systemctl --user status ssh-agent.service ssh-add-mevnode.service --no-pager
SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket" ssh-add -l
6) Test SSH na baremetal (po WG)
ssh user@10.66.66.1
Wskazowka:
- Alternatywa bez ssh-agent: wpis w ~/.ssh/config z IdentityFile (nie wymaga ssh-add),
ale ten plik opisuje wariant stricte "auto ssh-add po reboot".