CMD Master
Zpět na blog
•Aktualizováno•Arnošt Havelka

Oprávnění klíčů SSH: kdy použít chmod 600 nebo 700

Pro soukromý klíč SSH použijte chmod 600 a pro jeho adresář 700. Před dalším připojením ověřte oprávnění i vlastníka.

Spustit interaktivní lekci
Oprávnění klíčů SSH: kdy použít chmod 600 nebo 700

Pro soukromý klíč SSH použijte chmod 600, pokud jeho vlastník potřebuje právo čtení a zápisu. Pro adresář .ssh použijte chmod 700, aby jej mohl prohlížet, měnit a otevírat pouze vlastník. OpenSSH odmítá soukromé klíče, ke kterým mají přístup další uživatelé. Kontrolujte režim i vlastnictví, protože chmod nedokáže opravit klíč vlastněný nesprávným účtem. Lekce oprávnění SSH nabízí bezpečné cesty k procvičení před změnou skutečného klíče.

Nastavte soukromému klíči režim 600

Pro soukromý klíč Ed25519 v domovském adresáři spusťte:

chmod 600 "$HOME/.ssh/id_ed25519"

Režim 600 znamená:

UživateléOprávnění
vlastníkčtení + zápis
skupinažádné
ostatnížádné

SSH musí soukromý klíč přečíst, jiné účty k němu však přístup mít nemají. Pravidlu přístupu může vyhovovat také režim pouze pro čtení, například 400, pokud vlastník nepotřebuje soubor měnit. 600 je běžná praktická volba pro klíč spravovaný jeho vlastníkem.

Stejné pravidlo bez rozmyslu nepoužívejte na veřejný klíč končící na .pub. Veřejný klíč je určen ke sdílení a není tajný. Citlivým souborem je soukromý klíč, který OpenSSH odmítne použít, pokud je přístupný ostatním.

Nastavte adresáři .ssh režim 700

Adresáře potřebují oprávnění ke spuštění, označované také jako právo vstupu, aby šlo přistupovat k položkám uvnitř. Adresář chraňte takto:

chmod 700 "$HOME/.ssh"

Režim 700 dává vlastníkovi právo čtení, zápisu a vstupu, zatímco skupině ani ostatním neuděluje nic. Použití 600 na adresář by odstranilo bit vstupu. Vlastník by pak nemusel dokázat otevřít soubory uvnitř, přestože je adresář čitelný.

Vyhněte se rekurzivní zkratce chmod -R 700 "$HOME/.ssh". Přidala by právo spuštění každému běžnému souboru a smazala záměrné rozdíly mezi soukromými klíči, veřejnými klíči, konfigurací a soubory známých hostitelů. Adresář a konkrétní soukromý klíč změňte odděleně.

Ověřte režim i vlastnictví současně

Po změně prohlédněte obě cesty:

ls -ld "$HOME/.ssh"
ls -l "$HOME/.ssh/id_ed25519"

Řádek adresáře by měl začínat drwx------ a řádek soukromého klíče -rw-------. V obou řádcích by měl být jako vlastník uveden účet, který spouští ssh.

Pokud je režim správný, ale vlastník ne, nejprve zjistěte příčinu. Na osobním systému může zamýšlená oprava vypadat takto:

sudo chown "$USER" "$HOME/.ssh/id_ed25519"

Na sdíleném nebo spravovaném systému tento příkaz nekopírujte bez ověření pravidel pro účty. Průvodce chown vysvětluje kontroly vlastnictví a rizika rekurze samostatně.

Když chmod zdánlivě nepomáhá

Soubory na svazcích připojených z Windows, na síťových, kontejnerových nebo jinak spravovaných souborových systémech nemusí běžně zpřístupňovat unixové bity oprávnění. Pokud chmod ohlásí úspěch, ale ls -l neukáže užitečnou změnu, prověřte vlastnosti připojení a souborového systému místo opakovaného rozšiřování přístupu.

Pomocí ssh -v host zjistíte, který soubor identity se SSH pokouší načíst. Podrobný protokol ale nezveřejňujte bez odstranění názvů hostitelů, uživatelských jmen a cest. Správný režim jednoho klíče nepomůže, pokud SSH načítá jiný soubor.

Oktalový systém podrobně vysvětluje článek číselná oprávnění chmod. Kontroly přístupu k soukromým klíčům dokumentuje OpenSSH v manuálu ssh.

Reference

Tyto odkazy na dokumentaci poskytují spolehlivé informace o příkazech použitých v tomto článku.

Další

Bash Ripple Effect: Grep signál

Extrahujte rychle použitelné řádky protokolu pomocí filtrů grep bez rozlišení velkých a malých písmen.