Včera večer jsem potřeboval na ubuntu udělat triviální krok. Vygenerovat certifikát a pomocí ssh se přihlásit k druhému ubuntu serveru, pomocí tohoto certifikátu. Věc na pár kliknutí a přenesení jednoho souboru jsem ovšem dělal několik hodin a nebýt „přítele na ICQ“ do teď bych možná ověření funkční neměl.
Rozhodl jsem se poznamenat si tento postup krok za krokem, který mi pomohl dostat se do vytouženého cíle. Možná pomůže i někomu dalšímu, kdo ví.
Pokud potřebujete z jednoho linuxu komunikovat s druhým, stačí ověřit uživatelské údaje a můžete komunikovat. Pokud ale komunikaci potřebujete zautomatizovat, musíte mít možnost navázat spojení bez zadávaní hesla. A právě k tomu se používají certifikáty na počítači, který navazuje spojení se vygeneruje certifikát, ten se přenese do počítače na který se připojujete a místo zadání hesla se jednoduše ověří certifikát.
Zní to jednoduše, ovšem aby vše fungovalo musíte dodržet přesně postupy i názvy souboru, jinak totiž k ověření certifikátem nedojde a vyvolá se dialog na zadání hesla.
Přihlaste se na pc, který se bude přihlašovat jinam a spusťe příkaz
ssh-keygen
Vše nechte tak jak je a pouze to od entrujte. Heslo se zde nenastavuje a nechává se prázdné, aby mohla autentyfikace proběhnout bez zadání hesla.
Terminál v mém případě vypadal takto:
[ijacek007@localhost ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ijacek007/.ssh/id_rsa):
Created directory '/home/ijacek007/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ijacek007/.ssh/id_rsa.
Your public key has been saved in /home/ijacek007/.ssh/id_rsa.pub.
The key fingerprint is:
2a:81:b9:89:19:a1:e8:53:bb:c4:3a:c6:a0:f5:e4:46 ijacek007@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
|. |
|o. o |
|+ o.. S |
|o++oE. . |
|*+oO. . |
|.++ =. |
|...o |
+-----------------+
[ijacek007@localhost ~]$
A ve složce /home/ijacek007/.ssh přibyly dva soubory. id_rsa id_rsa.pub
provedeme zobrazení obsahu souboru id_rsa.pub .
cat /home/ijacek007/.ssh/id_rsa.pub
výsledek v mém případě vypadá takto
[ijacek007@localhost .ssh]$ cat /home/ijacek007/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApPWjO8gzGKPpWUMOtIoTZ3nZaWwsRIF8RZRhn5iTJn+wb615MI9lu3qhcAuRCXrGfpOar+QrRIygPXWc1mtu+j28MiJ+Nw1yqPQLaaZAZRWMmrvOIdSxBg79Uf3AiRXuut18UpCSq9DGV4zy217y4D9jfZeJ8I1lDYVMUD1goXDFhf/6BONLr967/uyjrOgYGotNy9suwdfjhkhBPnedt3ccApqU91+0JJnYRH8SO5M3osqrJikG4SHV7tNr4YTDxIdge3zRKqC0BjvZ17Wcg7YAMFFhiDZLThg4N+6GmuwMi+s4w6F7jShZuWHCjVDEVoijqnjptvO/58rAQBdP+Q== ijacek007@localhost.localdomain
[ijacek007@localhost .ssh]$
vypsaný text zkopírujeme do schránky cely od začátku ssh-rsa po konec ijacek007@localhost.localdomain
Teď se přihlaste na druhý server na který se budete přihlašovat. Pod uživatele který se bude přihlašovat s prvního systému. Pomoci nano editoru vložte obsah klíče z prvního serveru do souboru authorized_keys
nano /home/ijacek007/.ssh/authorized_keys
Teď se již stačí odhlásit z ssh obou stroju a pokud se přihlásime znovu již by pro komunikaci nemělo být vyžadováno heslo.
ssh ijacek007@192.168.94.131
pokud je vše v pořádku následuje výpys podobný tomuhle.
[ijacek007@localhost ~]$ ssh ijacek007@192.168.94.131
Last login: Fri Dec 14 13:47:56 2012 from 192.168.94.130
[ijacek007@localhost ~]$
Pokud systém heslo vyžaduje je potřeba zkontrolovat soubor /etc/ssh/sshd_config zda obsahuje tyto parametry na cílovém systému.
PubkeyAuthentication yes
RSAAuthentication yes
Pokud je stále heslo vyžadováno je možné že do složky nemá ssh přístup to napravíme tímto příkazem na cílovém systému.
chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
doporučuji po opravě těchto parametru zavolat ještě restart služby ssh
/etc/init.d/sshd restart
Za pomoc a trpělivost děkuji příteli na icq jménem Tomáš Bryja bez kterého bych u svého ubuntu výměnu klíču asi nikdy nezrealizoval. Tome Děkuji.
Zajímavé odkazy
Vložit komentář
* - vyžadované údaje. RSS kanál s komentáři