Četl jsem o nastavení ssh klíčů v Linuxu a mám několik otázek. Oprav mě pokud nemám pravdu…
Řekněme, že hostitel tr-lgto se chce připojit k hostiteli tr-mdm pomocí ssh. Pokud chceme mít jistotu, že se jedná o skutečný tr-mdm, vygenerujeme na tr-mdm pár klíčů a veřejný klíč přidáme do known_hosts
na tr-lgto. Pokud chce tr-mdm ověřit, že je to skutečný tr-lgto, pak musí tr-lgto vygenerovat klíčenku a přidat veřejný klíč do authorized_keys
na tr-mdm.
Otázka 1: Neexistuje žádné uživatelské pole v souboru known_hosts, pouze IP adresy a názvy hostitelů. tr-mdm může mít mnoho uživatelů, každý s vlastním .ssh
složka. Měli bychom přidat veřejný klíč ke každému z known_hosts
soubory?
Otázka 2: Zjistil jsem, že ssh-keyscan -t rsa tr-mdm
vrátí veřejný klíč tr-mdm. Jak zjistím, k jakému uživateli tento klíč patří? Navíc veřejný klíč v /root/.ssh/
se liší od toho, co tento příkaz vrací. Jak to může být?
Mícháte autentizaci serverového stroje s klientským strojem a autentizaci uživatele na serverovém počítači.
Jednou z prvních věcí, které se stanou při navazování spojení SSH, je to, že server odešle svůj veřejný klíč klientovi a klientovi prokáže (díky kryptografii veřejného klíče ), že zná přiřazený soukromý klíč. Toto ověřuje server: pokud je tato část protokolu úspěšná, klient ví, že server je tím, kdo jej předstírá.
Klient může zkontrolovat, zda je server známý, a ne nějaký nepoctivý server, který se snaží předat jako správný. SSH poskytuje pouze jednoduchý mechanismus pro ověření legitimity serveru: pamatuje si servery, ke kterým jste již připojeni, v ~/.ssh/known_hosts
soubor na klientském počítači (existuje také soubor pro celý systém /etc/ssh/known_hosts
). Při prvním připojení k serveru je třeba zkontrolovat jiným způsobem, že veřejný klíč představený serverem je skutečně veřejným klíčem serveru, ke kterému se chcete připojit. Pokud máte veřejný klíč serveru, ke kterému se chystáte připojit, můžete jej přidat do ~/.ssh/known_hosts
na klientovi ručně.
Ověřování serveru musí být provedeno před odesláním důvěrných dat na něj. Zejména pokud ověření uživatele zahrnuje heslo, nesmí být heslo zasláno na neověřený server.
Server umožňuje vzdálené přihlášení uživatele, pouze pokud tento uživatel prokáže, že má právo přístupu k tomuto účtu. V závislosti na konfiguraci serveru a výběru uživatele může uživatel předložit jednu z několika forem pověření (níže uvedený seznam není vyčerpávající).
~/.ssh/authorized_keys
na serveru).Moji přátelé mi dali odpověď. Ve výchozím nastavení identifikuje počítač stroj a ne uživatele. Klíče jsou tedy uloženy v/etc/ssh /. Proto jsem dostal jiný klíč, než ten uložený v /root/.ssh