SSH tipy a triky

Rudolf Vallo
UOL Devs
Published in
2 min readJun 1, 2017

SSH je mocný a bezpečný nástroj. Málo kdo ví, že umí nejen vzdálené ovládání, ale i přesměrování portů, které se hodí při nastavování služeb a vývoji aplikací. Dal jsem dohromady pár užitečných příkazů, které vám mohou hodně ulehčit práci.

Vygenerovaní klíče

:~# ssh-keygen -C komentar_klice -b 4096 -f /tmp/key

Vygeneruje se vám privátní klíč do souboru /tmp/key a veřejná část klíče /tmp/key.pub, která se umístí na server do ~/.ssh/authorized_keys. Parametr -C slouží pro komentář ve veřejné části klíče, -b určuje jak velký má být vygenerovaný klíč a -f určuje kam se má klíč uložit. Jde spustit i bez parametrů, pak se spustí průvodce vytvořením klíče.

Přidání klíče do klíčenky

:~# eval $(ssh-agent -s) && ssh-add ~/.ssh/id_rsa

Klíč se do klíčenky většinou importuje automaticky z ~/.ssh/*. Hodí se to pokud máte klíč uložený jinde.

Nastavení skupin a uživatelů

AllowUsers *@10.2.3 *@127.0.0.1 user1@* user2@*
AllowGroups users
DenyGroups root

Nastavuje se /etc/ssh/sshd_config, poté je potřeba restartovat službu ssh. Takto lze například zamezit systémovým účtům připojení na server.

Přesměrování portů a přesměrování privilegovaných portů

:~#sudo ssh -L3000:10.1.2.3:3000 -L443:seznam.cz:443 user@mujserver.cz

Pokud nechceme použít sudo, pak stačí porty směrovat od 1025 a výše př.: (… -L1025:10.30.3.70:80 …). Porty se přesměrují na localhost. Přesměrovat lze pouze tcp porty, pokud by jste potřebovali i udp, například pro dns server, je potřeba na serveru převést udp provoz na tcp, například přes netcat.

SSH proxy

Host mujserver.cz
HostName mujserver.cz
User uzivatel1
Port 22
ForwardAgent yes
#virtualni stroj na mujserver.cz, z venku nema povolene ssh.
Host virtual1.local
User uzivatel2
Port 22
ProxyCommand ssh mujserver.cz nc -q0 10.1.2.3 22
ForwardAgent yes

Konfigurace je v ~/.ssh/config. Funguje to tak, že ssh se připojí na server “mujserver.cz” a z něj se pak protuneluje přímo na “virtual1.local”. Výsledek je, že se připojujete přes příkaz: ssh virtual1.local.

SCP

:~#scp -P1234 /tmp/soubor mujserver.cz:/tmp/soubor

Překopíruje “soubor” z vašeho pc na mujserver.cz do /tmp/soubor. Mujserver má spuštěné ssh na portu 1234.

SCP na windows

Na windows se mi nejvíce osvědčil program WINSCP, jak ve verzi klienta, tak i serveru.

Ověřování otisku serveru přes DNS

VerifyHostKeyDNS=yes

Do ~/.ssh/config stačí přidat tento řádek, a v DNS záznamech mít uložené otisky serveru. Pro zjištění otisků, slouží ssh-keygen -r “jméno serveru”. Poté stačí otisky přidat do DNS.

:~# ssh-keygen -r mujserver.cz
mujserver.cz IN SSHFP 1 1 bcf428e1b2e5e116cb0efa2c6076409eaf687754
mujserver.cz IN SSHFP 1 2 2ea3dd796ae5a55f88ca8ce331c7a85bd21d5b2ce97a73e4f5a6d0ca4bfe7158
mujserver.cz IN SSHFP 2 1 5088d9b697bd5c2bdcd49e34067ba9b8264b8ce0
mujserver.cz IN SSHFP 2 2 479f3d4db9c3351e316f5f9d0cd79b7bbdc792fceacd5f386f850020ab151711
mujserver.cz IN SSHFP 3 1 2f2dff927d4d2e5f63accfe5fda9d955747a0605
mujserver.cz IN SSHFP 3 2 6370e287bdb38aa62f8cd3749a32a19a4f72553ef187a8be1f65a154b86d2b69
mujserver.cz IN SSHFP 4 1 04c626926399fe8268e2c8611c09e75324437998
mujserver.cz IN SSHFP 4 2 f2f174e256c201a08dec1bfb98adf47eaffa486c7b981619b369900bc32d3049

SSH config x11

ForwardX11 yes

Do ~/.ssh/config se přidá tento řádek a po připojení k serveru můžete spouštět aplikace v okně přímo na serveru. Případně doporučuji zapnout kompresi v ssh konfigu “Compression yes” případně parametr -C u ssh. Pokud chcete používat náročnější grafické aplikace doporučuji použít X2GO serveru.

--

--