Portál AbcLinuxu, 9. května 2025 00:37
ps axu | grep -q [u]ser@pi || ssh -p 22 user@pi -N -R 0.0.0.0:9944:localhost:22na RPi musíš vyrobit uživatele, přidat mu SSH klíč z notebooku a nastavit v
/etc/ssh/sshd_config
GatewayPorts clientspecified
(jinak se půjde připojit jen z localhostu).
ssh -f -N -R adresa_serveru:port:localhost:22 uživatel@adresa_serveru
. Tím se naváže SSH tunel a na notebook se pak dá dostat přes SSH pomocí ssh -p port adresa_serveru
. Ten port je vhodné zvolit jiný než implicitní SSH, aby nedocházelo ke konfliktům při spuštění sshd
, tedy něco jako 22222 a podobně. Je vhodné vyrobit si službu pro systemd
, která takové spuštění SSH zajistí.K bodu 3 bych doplnil příklad takové služby pro systemd
. Stačí to trochu tweaknout, dát to někam do /etc/systemd/system/sshtunnel.service
a pak už jen systemctl daemon-reload; systemctl enable sshtunnel; systemctl start sshtunnel
. U této konfigurace má uživatel root na notebooku ve svém ~/.ssh
uložený nešifrovaný soukromý SSH klíč pro uživatele lojza na vzdáleném serveru. Díky tomu se služba může automaticky spustit, bez zadávání čehokoliv. (Lojza by měl být samozřejmě extrémně omezený, tedy neměl by smět v podstatě nic kromě otvírání nějakého portu 22222.)
[Unit] Description=SSH over SSH tunnel to reach this machine from outside After=NetworkManager-wait-online.service Requires=NetworkManager-wait-online.service [Service] Type=forking ExecStart=/usr/bin/ssh -o ConnectionAttempts=3600 -f -C -N -R *:22222:[::1]:22 lojza@my.server.example.com [Install] WantedBy=multi-user.target
Pokud jde o možnosti (1) a (2), v případě zájmu sem můžu dát nějakou konfiguraci IPSec (StrongSwan) s podporou IPv6, případně OpenVPN konfigurák, obojí samozřejmě s podporou autentifikace certifikátem. Ale na obojí se dá tak či tak najít spousta návodů na webu. Možnost (3) je tak trochu quick and dirty řešení, ale někdy se může fakt hodit. IPSec nebo OpenVPN mají samozřejmě tu výhodu, že se přes ně dá routovat i spousta dalších věcí, nikoliv jenom SSH. Například když má server veřejnou IPv4 adresu, má automaticky taky 2^80 veřejných IPv6 adres. Tedy může sloužit jako vzdálený IPv6 router pro notebook schovaný za dvěma NATy, který by se jinak k IPv6 třeba vůbec nedostal. Něco takového možnost (3) zkrátka neumí.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.