it-swarm-eu.dev

Jak SSH na jiném portu než 22

Mám dva počítače za stejným routerem. Řekněme jim A a B.

A může SSH až B následujícím způsobem: ssh [email protected]<internal ip of computer>

B může SSH až A tím samým, ale musí být použita externí IP adresa. Port 22 mého routeru jsem přeposlal na IP počítače A, takže mi to dává smysl.

Chci však také předat port 26 do počítače B a SSH z vnějšku sítě pomocí externí IP pro oba, ale specifikovat buď port 22 nebo 26, pro efektivní výběr počítače, který se má použít.

Snažil jsem se povolit port 26 prostřednictvím VÝSTUPU iptables na A a VSTUPU B, ale zdálo se, že to nefunguje. Také jsem přeposlal port 26 na interní IP B (přes router), jako jsem to udělal s 22 pro A.

Zde je, co dostanu, když se pokusím SSH z A do B pomocí externí IP a portu 26:

ssh: connect to Host xx.xx.xxx.xx port 26: Connection refused.

Verze:

  • A = OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14. března 2012
  • B = OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.1c 10. května 2012

A má 12,04 Ubuntu, B je Raspberry Pi s Raspbian.

EDIT: Něco, na co jsem zapomněl dát: Zkusil jsem přepnout konfigurační soubor SSH (zjistil jsem, že je /etc/ssh/ssh_config) Nepřihlásil (smazal jsem #) řádek s Port a změněn 22 to 26. Stále mi to dalo zprávu o odmítnutí spojení. (Restartoval jsem bez úspěchu.)

183
Gary

Vypadá to, že na portu 26 druhého počítače neběžíte SSH. Číslo portu na tomto počítači můžete změnit na 26.

Buď upravit /etc/ssh/sshd_config & nezapomeňte restartovat SSH nebo jej nechat na 22, ale předejte port 26 na routeru na port 22 na druhém počítači. Nezapomeňte také změnit nastavení brány firewall na druhém počítači a umožnit tak připojení.

50
Nerdfest

Pokud jste v systému Linux a chcete se připojit k serveru SSH na portu 26, můžete použít následující příkaz.

ssh [email protected] -p 26

Poznámka:

  1. Nahraďte IP adresu serveru IP adresou nebo DNS jménem vašeho serveru.
  2. Změňte číslo portu, jak jste nastavili.
  3. pokud používáte vlastní port SSH, pak stejný port bude nejvíce povolen pro odchozí, příchozí připojení na firewallu, jinak se spojení nevytvoří
423
Shiv Singh

Port 22 používám pouze pro intranetový ssh přístup.

Pro přístup přes internet používám vlastní (neobvyklý) port. To má výhodu v tom, že snižuji zatížení generované dětmi skriptu, kteří skenují port 22 na „dobře známá uživatelská jména“.

Procesy externí sshd jsou řízeny xinetd a běží paralelně s procesem internísshd. V následujícím příkladu používám port 12345:

Můžete to změnit na libovolné dostupné číslo portu v systému. Možná vyšší hodnota způsobí, že bude tento port také trochu nepravděpodobnější, pokud bude tento port prohledáván „rychlé vyhledávání portů“.

Konfigurace xinetd je:

service ssh-external
{
    socket_type = stream
    wait = no
    protocol = tcp
    type = UNLISTED
    user = root
    server = /usr/sbin/sshd
    server_args = -i -f  /etc/ssh/external-sshd.config
    port = 12345
    log_on_failure += USERID
}

Soubor /etc/ssh/external-ssdh.config může být kopie vaší obvyklé sshd konfigurace. Zkontrolujte, zda jsou nakonfigurovány následující příkazy:

Port 12345
AddressFamily inet

Navrhuji také vynutit ověřování pomocí veřejného klíče a zakázat ověřování pomocí hesla pro přístup na internet:

PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
10
H.-Dirk Schmitt

Naslouchací porty lze také pevně spojit s IP adresami

/ etc/ssh/sshd_config:

ListenAddress 10.10.10.10:22
ListenAddress 20.20.20.20:4444
8
OasisInDesert

Jak jsem vysvětlil v související odpověď , ssh klient umožňuje specifikovat formát URI jako ssh://[email protected]:1234. Například:

ssh  ssh://[email protected]:2222

kde 2222 je číslo portu. Místo toho zadejte číslo portu, který chcete použít. Nezapomeňte však, že pro připojení k zadanému portu ssh server (na hostiteli, ke kterému se pokoušíte připojit), musí nejprve poslouchat na zadaném portu.

1

Není vhodné spouštět ssh na výchozím portu (TCP/22) ani předávat z WAN IP 22 na jakýkoli port, který používá ssh-server na LAN IP).

Obecněji by se připojení k serveru ssh-server mělo poslouchat na tomto portu. Musíš

  1. Upravit na /etc/ssh/sshd_config ( všimněte si d ) od #Port 22 to Port 26. Tj. Zrušte přístup a změňte port. Možná lepší než 26 by bylo něco náhodně nahoře , jako 42895.
  2. Restartujte službu ssh-serveru

    Sudo systemctl restart sshd.service
    

Poté se z klienta ssh budete moci připojit

ssh [email protected] -p 42895

Bonus: mosh

Pokud je na serveru nainstalován balíček mosh, použijte

mosh --ssh="ssh -p 42895" serverNameOrIP
0
Pablo Bianchi