69 lines
2.1 KiB
Plaintext
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".
|
|
|