Pokyny v help.ubuntu.com/community/SSH/OpenSSH/Configuring doporučují deaktivovat ověřování heslem, takže „bude možné se připojit pouze z počítačů, které jste výslovně schválili“. Ale neříkají, jak konkrétně schválit počítač. Jak to udělám?
Přijatá odpověď:
U každého uživatele, ke kterému chcete mít přístup k serveru, spusťte v terminálu:
ssh-keygen
ssh-copy-id <username>@<serverIPorDNSname>
Zeptá se vás, kam to uložit, výchozí nastavení je v pořádku. Požádá vás o zadání přístupové fráze. Jde o zašifrování klíče pro případ, že by byl počítač odcizen nebo kompromitován. Pokud heslo nechcete, ponechte obě výzvy k zadání hesla prázdné.
První příkaz vytvoří klíč ssh pro aktuálního uživatele, na kterém je spuštěn. Druhý příkaz ssh's do serveru a přidá klíč aktuálního uživatele do seznamu serverů, kteří se mohou přihlásit. Protože ssh-copy-id používá ssh, budete to muset udělat před deaktivací přihlašování pomocí hesla.
Klíče SSH jsou dvě stejné poloviny. Jedna polovina se řekne všem, druhá se tají. Pomocí matematického algoritmu lze veřejnou polovinu použít k dešifrování dat zašifrovaných soukromým klíčem. Pokud se data úspěšně dešifrují pomocí veřejného klíče, bezpochyby víte, že to byla soukromá polovina klíče, která je zašifrovala. Když se tedy přihlásíte pomocí ssh klíče, klient odešle zprávu (zašifrovanou pomocí soukromého klíče), která v podstatě říká „pusť mě dovnitř“. Server kontroluje pomocí veřejného klíče a pokud je veřejný klíč v seznamu povolených počítačů, přihlášení proběhlo úspěšně.
ssh-copy-id (pomocí ssh) zkopíruje veřejnou polovinu na seznam serverů, které klíče se mohou přihlásit (tento seznam je uložen v /home/cat /media/USB/stick/path/to/id_rsa.pub >>/home/<username>/.ssh/authorized_keys2
na serveru.)