user@homelab:~/docs$ cat 07-ssh.md
SSH: Mac a iPad
Přihlášení klíčem, zkratka ssh homelab, Klíčenka a vypnutí hesel
# obsah
Jak SSH klíče fungují
ssh-keygen vytvoří dvojici souborů:
- soukromý klíč (
id_ed25519) funguje jako klíč od dveří. Zůstává jen na zařízení, ze kterého se připojuješ, a nikam se nekopíruje, - veřejný klíč (
id_ed25519.pub) funguje jako zámek. Nahraje se na server do~/.ssh/authorized_keys.
Každé zařízení má vlastní klíč. Když se iPad ztratí, smaže se na serveru jen jeho řádek a Mac funguje dál.
Mac
1. Vygenerovat klíč
ssh-keygen -t ed25519 -C "mac->homelab"- umístění: jen Enter (
~/.ssh/id_ed25519), - passphrase: ano. Chrání klíč, kdyby se někdo dostal k Macu, a Mac si ji zapamatuje v Klíčence.
2. Zkratka v ~/.ssh/config
Host homelab
HostName <ip-serveru>
User <uživatel>
IdentityFile ~/.ssh/id_ed25519
AddKeysToAgent yes
UseKeychain yesHost homelab: místossh <uživatel>@<ip-serveru>stačíssh homelab,UseKeychain+AddKeysToAgent: passphrase se po prvním zadání uloží do Klíčenky macOS.
3. Nahrát veřejný klíč na server
ssh-copy-id homelab
ssh homelabssh-copy-id se naposledy zeptá na heslo k účtu na serveru, zkopíruje .pub do authorized_keys a nastaví práva. Pokud by passphrase nezůstala uložená:
ssh-add --apple-use-keychain ~/.ssh/id_ed25519Vypnutí přihlašování heslem
sudo nano /etc/ssh/sshd_config.d/00-hardening.confPasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin nosudo sshd -t && sudo systemctl restart ssh
sudo sshd -T | grep -E 'passwordauthentication|kbdinteractive|permitrootlogin'Proč 00- na začátku jména: soubory v sshd_config.d/ se čtou podle abecedy a u sshd platí první nalezená hodnota. Soubor od instalátoru (např. 50-cloud-init.conf) může heslo povolovat, a díky prefixu 00- má přednost náš.
Test z Macu: první příkaz musí projít, druhý musí skončit Permission denied (publickey).
ssh homelab
ssh -o PubkeyAuthentication=no homelabiPad (Termius)
- Keychain → + → Generate Key, typ ED25519, název
ipad. - Zkopírovat veřejný klíč (
ssh-ed25519 AAAA…) a poslat si ho na Mac, třeba přes AirDrop. Veřejný klíč tajný není. - Přidat ho na server na nový řádek. Klíč z Macu nemazat:
nano ~/.ssh/authorized_keys- Hosts → New Host: hostname
<ip-serveru>, port22, Username<uživatel>, Keyipad, heslo nechat prázdné.
Přístup z iPadu funguje jen v domácí síti. Mimo domov ho vyřeší Tailscale, viz Backlog.