W systemie Ubuntu 12.04 skonfigurowałem serwer OpenSSH. Mogę łączyć się z sieci LAN, ale nie z zewnątrz. Używam tego samego sshd_config
pliku, co na moich innych komputerach z systemem Ubuntu 12.04 (które znajdują się w innej sieci LAN).
$ ssh 192.168.0.2
działa dobrze, ale
ssh 65,76.97.222
(skonfigurowany adres IP) nie działa. Nic się nie dzieje. Brak komunikatu o błędzie lub cokolwiek innego. Podpowiedź po prostu tam siedzi.
Dzięki komentarzom poniżej udało mi się zweryfikować za pośrednictwem stron internetowych canyouseeme.org i ShieldsUP, czy port 22 jest rzeczywiście otwarty.
Korzystając z opcji -vvv
, otrzymuję:
$ ssh -vvv 65.76.97.222
OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 65.76.97.222 [65.76.97.222] port 22.
debug1: Connection established.
debug1: identity file /home/myname/.ssh/id_rsa type -1
debug1: identity file /home/myname/.ssh/id_rsa-cert type -1
debug1: identity file /home/myname/.ssh/id_dsa type -1
debug1: identity file /home/myname/.ssh/id_dsa-cert type -1
debug1: identity file /home/myname/.ssh/id_ecdsa type -1
debug1: identity file /home/myname/.ssh/id_ecdsa-cert type -1
A potem podpowiedź po prostu tam siedzi.
Dalsze informacje debugowania z var/log/auth.log
:
$ grep sshd /var/log/auth.log
[cutting old lines...]
Jul 6 10:23:05 mymachine sshd[7871]: Did not receive identification string from 65.76.97.222
Zezwalam każdemu użytkownikowi na nawiązanie połączenia, w szczególności mojej własnej nazwy użytkownika. To, co mnie dezorientuje, to fakt, że nie miałem tego problemu na żadnej innej maszynie, chociaż są one na innym komputerze. Do tej sieci jest podłączony tylko jeden komputer. Jakieś pomysły na dalsze kroki?
-v
,-vv
, aby-vvv
), aby uzyskać informacje dodatkowe Re: połączenie. npssh -vvv -p 51555 65.76.97.222
.Odpowiedzi:
Kilka rzeczy do sprawdzenia.
Sprawdź
/etc/ssh/sshd_config
i upewnij się, że nie masz żadnych śmiesznychAllowUsers
wpisów.Podaj użytkownika, z którym chcesz się połączyć, jako:
Sprawdź swoją zaporę ogniową (
iptables
):źródło
Sprawdź, czy brama na serwerze SSH jest ustawiona na router wykonujący przekierowanie portów.
route -n
Domyślna trasa powinna wskazywać z powrotem na ten router, w przeciwnym razie będziesz mógł inicjować połączenia przez niego, ale ACK nigdzie nie pójdzie!
źródło
Muszę sprawdzić, czy przekierowanie portów działa poprawnie, zwykle sprawdzam, przechodząc do https://www.grc.com/shieldsup > Kontynuuj> wstaw numer portu w polu i kliknij niestandardową sondę portu określoną przez użytkownika. To powinno ci powiedzieć, czy ten port TCP jest w rzeczywistości otwarty dla publiczności
źródło
grep sshd /var/log/auth.log
auth.log
:Jul 6 10:23:05 mymachine sshd[7871]: Did not receive identification string from 65.76.97.222
Czy deklarujesz użytkownika?
ssh [email protected] -p51555
Jeśli podałeś kod w sposób, w jaki go używasz, to uważam, że domyślną nazwą będzie bieżąca nazwa użytkownika.
Ponadto musisz mieć użytkownika w systemie TARGET z uprawnieniami. w powyższym przykładzie „Jimmy”
źródło
sshd_config
pozwala każdemu użytkownikowi się połączyć.