Obsah
OpenSSH
OpenSSH je program, který umožňuje zabezpečenou vzdálenou správu systému.
http://www.root.cz/clanky/jak-nahradit-ftp-pomoci-sftp-a-zamknout-uzivatele/ - nahrazení SFTP za FTP
Klávesové zkratky
<enter>~.
- ukončí ssh, i když shell „zamrzne“
Generování klíčů
vygeneruje soukromý a veřejný klíč 521 bitů dlouhý
cd ~/.ssh ssh-keygen -b 521 -t ecdsa
otisk klíče se dá zjisti následujícím příkazem
ssh-keygen -lf id_rsa.pub
Autorizované klíče
Pokud se chceme přihlašet na vzdálený účet přes SSH bez hesla na základě veřejného klíče (jde o bezpečnější variantu), je třeba do vzdáleného adresáře ~/.ssh
přidat soubor authorized_keys
s lokálním veřejným klíčem.
veřejný klíč je možní nahrát na server následujícím příkazem
ssh-copy-id <uživatel>@<host>
Práva
Některé chyby jsou způsobeny špatně nastavenými právy.
drwx------. ~/.ssh -rw------- ~/.ssh/authorized_keys -rw------- ~/.ssh/id_rsa
lze nastavit například takto:
chmod -R 700 ~/.ssh chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/authorized_keys
Config
konfigurace uživatele je možná v souboru ~/.ssh/config
následující řádky zajistí, aby firewall po určité době nezrušil spojení
Host * ServerAliveInterval 300 ServerAliveCountMax 2
Config sshd
V souboru /etc/ssh/sshd_config
# ssh poslouchá na obou portech Port 22 Port 443 # zakáže přihlášní roota PermitRootLogin no # povolí se přihlásit pouze uživatelům ''user1'' ''user2'' ''user3'' AllowUsers user1 user2 user3
Příklady použití
ssh
připojí se na <host>:<port>
jako uživatel <user>
a použije jíný privátní klíč než ~/.ssh/id_rsa
ssh -p <port> -i <cesta k privátnímu klíči> <user>@<host>
přidá text
na konec vzdáleného souboru soubor.txt
cat "text" | ssh uzivatel@adresa "cat >> soubor.txt"
ssh-keygen
smaže <hostname>
z ~/.ssh/known_hosts
ssh-keygen -R <hostname>
ukáže položku z ~/.ssh/known_hosts
pro <hostname>
ssh-keygen -H -F <hostname>
ukáže otisk serveru hostname
ssh-keygen -E sha256 -lf <(ssh-keyscan hostname 2>/dev/null)
Tunelování
připojení na localhost:<port1>
bude protunelováno na <ssh host>
a od tuď se připojí na <host2>:<port2>
ssh -L <port1>:<host2>:<port2> <ssh host>
vytvoří SOCKS proxy na portu 9999
ssh -D 9999 <user>@<host>