Autentizace pomocí veřejného klíče vám umožňuje přistupovat na server přes SSH bez hesla. Zde jsou dva způsoby, jak zkopírovat veřejný klíč ssh na server.
Věřím, že rozumíte základnímu konceptu SSH. Váš linuxový server má povoleno ssh. Na svém osobním počítači jste vygenerovali ssh klíče. Nyní chcete nahrát svůj veřejný klíč do autorizovaných klíčů serveru, abyste k němu měli přístup, aniž byste museli neustále zadávat heslo k účtu.
Tento rychlý tutoriál vám ukáže dva způsoby, jak přidat veřejný klíč SSH na server.
Požadavky
Než to uvidíte, ujasněme si, co byste již měli mít:
- Váš cílový server by měl mít povoleno ssh
- Měli byste mít vygenerované veřejné a soukromé ssh klíče (stačí použít příkaz ssh-keygen -t rsa )
- Na serveru byste měli mít uživatelský účet a heslo. Dokonce i účet root bude stačit.
- Měli byste znát IP adresu serveru
Nyní, když jste se ujistili o výše uvedených čtyřech požadavcích, pojďme se podívat, jak používat ověřování pomocí veřejného klíče.
Ověření se provádí na uživatelskou základnu, takže veřejný klíč jde do domácnosti zamýšleného uživatele.
Metoda 1:Automaticky zkopírovat ssh klíč na server
První metoda spočívá v tom, že koncový uživatel zkopíruje veřejný klíč svého osobního počítače do seznamu autorizovaných klíčů na vzdáleném serveru.
Zde předpokládám, že jste se mohli přihlásit ke vzdálenému serveru pomocí ssh [email protected]_of_server. Požádá vás o heslo vašeho účtu a vy vstoupíte na server.
Pokud na server přidáte svůj veřejný klíč, měli byste být schopni se přihlásit, aniž byste museli neustále zadávat heslo.
OpenSSH poskytuje užitečné volání nástroje nazvané ssh-copy-id pro kopírování veřejných klíčů ssh do vzdálených systémů. Dokonce vytváří požadované adresáře a soubory.
Jak jsem již zmínil dříve, měli byste znát uživatelské jméno a heslo k serveru, ke kterému chcete přistupovat prostřednictvím ověřování pomocí veřejného klíče.
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]_ADDRESS_OF_THE_SERVER
Po zobrazení výzvy zadejte heslo pro svůj uživatelský účet na vzdáleném serveru. Váš veřejný klíč by měl být automaticky zkopírován do příslušné složky na vzdáleném serveru.
Použil jsem ~/.ssh/id_rsa.pub, protože to je výchozí umístění pro veřejný klíč ssh. Pokud jej máte na nějakém jiném místě, měli byste to použít ve výše uvedeném příkazu.
Metoda 2:Ručně zkopírujte veřejný klíč ssh na server
První metoda měla akci na straně uživatele. Řekněme, že jste správce systému a váš server neumožňuje přihlášení SSH pomocí hesla. Jediný způsob, jak získat přístup k serveru, je pomocí ověřování pomocí veřejného klíče SSH.
V takovém případě můžete koncového uživatele požádat, aby poskytl svůj veřejný klíč. Nyní můžete vytvořit adresář .ssh/authorized_keys a poté sem zkopírovat veřejný klíč.
Dovolte mi ukázat kroky.
Krok 1:Získejte veřejný klíč
Požádejte koncového uživatele o poskytnutí veřejného klíče zadáním následujícího příkazu:
cat ~/.ssh/id_rsa.pub
Zobrazí se dlouhý náhodný řetězec začínající na ssh-rsa:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP [email protected]
Tento text můžete získat prostřednictvím e-mailu nebo nástrojů pro zasílání zpráv. Normálně by to neměl být problém.
Krok 2:Vytvořte adresář ssh v domovském adresáři uživatele (jako správce systému )
Mějte na paměti, že tyto nové adresáře a soubory musíte vytvořit v domovském adresáři koncového uživatele, nikoli ve svém (root/sysadmin).
mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys
Nyní otevřete tento soubor /home/user_name/.ssh/authorized_keys pomocí textového editoru, jako je Vim, a přidejte veřejný klíč uživatele zde:
vim /home/user_name/.ssh/authorized_keys
Uložte a zavřete soubor. Je téměř připraven.
Krok 3:Nastavte příslušné oprávnění k souboru
Mít příslušná oprávnění k souboru ssh je velmi důležité, jinak se zobrazí chyby jako Permission denied (publickey).
Nejprve se ujistěte, že jste nastavili správná oprávnění souboru:
chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys
Tyto soubory jste vytvořili pomocí účtu root nebo pomocí vlastních účtů správce pro jiného uživatele. Musíte změnit vlastnictví na uživatele:
chown -R username:username /home/username/.ssh
Nyní, když je hotovo, můžete koncového uživatele požádat, aby se přihlásil k serveru.
Dejte mi vědět, pokud narazíte na nějaké problémy nebo pokud máte nějaký návrh na toto téma.