(Această întrebare ar trebui să fie etichetată cu „Tailscale”, dar aceasta nu există încă - necesită cunoștințe despre Tailscale)
Am un laptop standard Ubuntu 20.04, care se conectează prin ssh la un Raspberry Pi la distanță (port 22). La locația de la distanță, există redirecționare porturi pe router (59995->22).
Notă: am eliminat ~/.ssh/config în timpul testării.
SSH se conectează întotdeauna cu succes, folosind:
ssh user@public_ip -i ~/.ssh/id_rsa -p 59995
Cu toate acestea, când folosesc IP-ul Tailscale, nu se conectează niciodată, doar se blochează timp de 120 de secunde, apoi expiră:
ssh user@tailscale-ip -i ~/.ssh/id_rsa (nu funcționează)
Cu toate acestea, dacă compilez manual OpenSSH v8.2 și folosesc acea versiune, în loc de binarul /usr/bin/ssh, atunci funcționează perfect! Chiar dacă /usr/bin/ssh este și v8.2
./ssh user@tailscale-ip -i ~/.ssh/id_rsa (asta funcționează!)
Recapitulare: sistemul binar funcționează bine cu ssh „normal”, dar nu cu ssh-via-tailscale. Cu toate acestea, o versiune compilată manual (aceeași) a Openssh funcționează bine atât cu ssh obișnuit, cât și cu ssh-over-tailsale. Stie cineva ce ar putea fi cauza asta?
Note Aditionale
Nu cred că este vreo problemă evidentă cu rețeaua tailscale: adică dacă probez prin IP tailscale atunci nmap scanarea arată că porturile corecte sunt deschise și pot netcat direct către tailscale_ip:22, primește și răspunde.
diff ~/openssh-8.2p1/ssh /usr/bin/ssh arată că binarele diferă. (diferență mare de dimensiune, de asemenea, aproximativ 3MB vs 0.7MB)
/usr/bin/ssh -V : OpenSSH_8.2p1 Ubuntu-4ubuntu0.4, OpenSSL 1.1.1f 31 martie 2020
~/openssh-8.2p1/ssh -V : OpenSSH_8.2p1, OpenSSL 1.1.1f 31 martie 2020
De-logare /usr/bin/ssh -vvv user@tailscale_ip -i ~/.ssh/id_rsa (ip redactat)
OpenSSH_8.2p1 Ubuntu-4ubuntu0.4, OpenSSL 1.1.1f 31 martie 2020
debug1: Citirea datelor de configurare /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config linia 19: include /etc/ssh/ssh_config.d/*.conf nu se potrivește niciun fișier
debug1: /etc/ssh/ssh_config linia 21: Se aplică opțiuni pentru *
debug2: resolve_canonicalize: numele de gazdă 100.1.1.1 este adresa
debug2: ssh_connect_direct
debug1: se conectează la 100.1.1.1 [100.1.1.1] portul 22.
< 2 minute stai aici >
ssh: conectează-te la portul 22 de gazdă 100.1.1.1: conexiune a expirat