Vraag SSH op een andere poort dan 22


Ik heb twee computers achter dezelfde router. Laten we ze A en B noemen

Een kan SSH naar B op de volgende manier: ssh usr@<internal ip of computer>

B kan SSH naar A doen door hetzelfde te doen, maar het externe IP-adres moet worden gebruikt. Ik heb poort 22 van mijn router doorgestuurd naar het IP van computer A, dus dat is allemaal logisch voor mij.

Ik wil echter ook poort 26 doorsturen naar computer B en SSH van buiten het netwerk door voor beide het externe IP-adres te gebruiken, maar poort 22 of 26 specificeren om effectief te selecteren welke computer moet worden gebruikt.

Ik heb geprobeerd die haven 26 door OUTPUT van toestaan iptables op A en INPUT van B, maar dat leek niet te werken. Ik heb ook poort 26 doorgestuurd naar de interne IP van B (via de router), zoals ik deed met 22 voor A.

Dit is wat ik krijg als ik probeer om van A naar B te SSH met behulp van de externe IP en poort 26:

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

versies:

  • A = OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 maart 2012
  • B = OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.1c 10 mei 2012

A heeft 12.04 Ubuntu, B is een Raspberry Pi met Raspbian.

EDIT: Iets dat ik vergat in te brengen: ik probeerde het SSH-configuratiebestand om te schakelen (ik vond het wel /etc/ssh/ssh_config) Ik heb geen opmerkingen achtergelaten (verwijderde de #) de regel met Port en veranderd 22 naar 26. Het gaf me de verbinding geweigerde bericht nog steeds. (Ik startte het tevergeefs opnieuw op.)


83
2018-03-04 22:47


oorsprong


Doe je ohha SSH op poort 22 of 26 op de tweede machine? - Nerdfest
Let daar op / Etc / ssh / ssh_config is de ssh-clientconfiguratie. Terwijl / Etc / ssh / sshd_config is de ssh daemon-configuratie. - steakunderscore


antwoorden:


Het lijkt erop dat je SSH niet uitvoert op poort 26 op de tweede machine. U kunt het poortnummer op die machine naar 26 wijzigen.

Ofwel bewerken /etc/ssh/sshd_config & vergeet niet om SSH opnieuw te starten of op 22 te laten staan, maar stuur poort 26 op de router door naar poort 22 op de tweede machine. Vergeet ook niet om eventuele firewall-instellingen op de tweede machine te wijzigen om de verbindingen door te laten.


31
2018-03-04 22:53



Ahhh ... dus sshd_config moet veranderen, niet ssh_config? - Gary
Correct. sshd is de service (d is voor daemon). Bewerk het configuratiebestand (met sudo gedit) en start de service opnieuw met "sudo service ssh restart". - Nerdfest
Probleem opgelost. Ik hoefde ook geen firewall-instellingen te wijzigen. - Gary


Als u op het Linux-systeem zit en verbinding wilt maken met een SSH-server op poort 26, kunt u de volgende opdracht gebruiken.

ssh user@192.168.1.1 -p 26

Notitie:

  1. Vervang server-IP door het IP-adres of de DNS-naam van uw server.
  2. Wijzig uw poortnummer zoals u hebt ingesteld.
  3. als u aangepaste poort SSH gebruikt, dan wordt dezelfde poort het meest toegestaan ​​voor uitgaande, binnenkomende verbinding op firewall, anders zal de verbinding niet tot stand komen

215
2017-08-12 12:48



Deze moet als correct worden gemarkeerd. - ken_oy
Ik ben het ermee eens dat dit het juiste antwoord is. Deze is eenvoudig en gaat ter zake. - m4l490n
@gary markeer deze als correct - sorrow poetry
Nee dit is NIET het juiste antwoord. OP had problemen met daemon die niet op de gewenste poort luisterde. Hij heeft duidelijk om hulp gevraagd met de SSH-server en / of NAT-configuratie, maar het huidige antwoord negeert de oorspronkelijke post en beschrijft de opdrachtopdrachtoptie die al bij OP bekend was. Ik vraag me af hoe dit antwoord zoveel upvotes heeft opgeleverd. - nnovich-OK
@Gary Dit antwoord is de juiste. Accepteer dit antwoord als het juiste antwoord. - Dheeraj M Pai


Ik gebruik poort 22 alleen voor de intranet-ssh-toegang.

Voor toegang via internet gebruik ik een aangepaste (ongebruikelijke) poort. Dit heeft het voordeel dat ik de geproduceerde belasting reduceer die wordt gegenereerd door scriptkinderen die poort 22 scannen voor "bekende gebruikersnamen"

De extern SSH-processen worden beheerd door xinetd en parallel aan het lopen intern sshd-proces. In het volgende voorbeeld gebruik ik de poort 12345. U bent vrij om dit te wijzigen naar een beschikbaar vrij poortnummer op uw systeem. Misschien maakt een hogere waarde het ook een beetje onwaarschijnlijker dat deze poort wordt gescand door een "quick port scan".

De xinetd configuratie is:

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

}

Het bestand /etc/ssh/external-ssdh.config kan een kopie zijn van je gebruikelijke sshd configuratie. Zorg ervoor dat de volgende instructies zijn geconfigureerd:

Port 12345
AddressFamily inet

Ik stel ook voor om public key-authenticatie af te dwingen en wachtwoordverificatie voor de internettoegang uit te schakelen:

PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no

6
2018-03-04 23:11





Luisterpoorten kunnen ook moeilijk worden gekoppeld aan IP-adressen

/ Etc / ssh / sshd_config:

ListenAddress 10.10.10.10:22
ListenAddress 20.20.20.20:4444

5
2018-02-28 06:33