W ramach moich starań, aby zmniejszyć hałas w logach i nieznacznie zmniejszyć wykrywalność (i oprócz fail2ban, umożliwiając tylko uwierzytelnianie za pomocą klucza publicznego itp.) Rutynowo zmieniam porty sshd na serwerach, które skonfigurowałem na inny port, powiedzmy 5492. Obecnie Dodaję -p 5492 do mojego polecenia ssh lub dodaję port dla każdego określonego serwera do mojego ssh_config
.
Czy istnieje sposób skonfigurowania ssh, aby próbował połączyć się zarówno z portem 22, jak i 5492, jeśli port 22 nie działa?
ssh
command-line
Riley
źródło
źródło
ssh
obecności na zewnątrz.Odpowiedzi:
Możesz owinąć skrypt powłoki,
ssh
alessh
sam tego nie zrobi.Jednym ze sposobów użycia funkcji bash jest (włożenie
~/.bashrc
):Nawiasem mówiąc, zaleca się używanie
root
portów zarezerwowanych dla usług systemowych, takich jakssh
w celu uniknięcia korzystania przez użytkowników z procesu, który nasłuchuje, powiedzmy, na porcie 5492. W przeciwnym razie mogą grać człowieka w środku i przechwytywać dane logowania. Więc użyj portu <1024.źródło
ssh
zwraca wartość niezerową. Byłby to trywialny przykładssh user@server false
.command
teraz. Po prostu chciałem uniknąć rekurencji, jak dobrze zgadłeś.ssh
- jeśli wystąpi błąd ssh (w przeciwieństwie do niepowodzenia polecenia zdalnego), zakończy działanie ze statusem 255. Zatemcommand ssh -p 22 "$@"; if [ "$?" -eq 255 ]; then command ssh -p 5492 "$@"; fi
powinien działać.ssh
sama może to zrobić poprzezMatch
udokumentowane,ssh_config(5)
chociaż dokumentacja jest nieco rzadka w przykładach. Ta forma może być odpowiednia, jeśli ktoś chce zepchnąć złożoność do konfiguracji SSH, choć jest to ograniczone przez ograniczeniassh_config(5)
składni i może wymagać nieco manipulacji w celu uzyskania pożądanego rezultatu. W szczególności nie można ustawić niestandardowego portu lub można go ustawić nieprawidłowo z poprzedniejMatch
próby. Dlatego poniżej jest ustawiany dwukrotnie podczas testowania lub raz dla wartości domyślnej i nie jest ustawiany podczas ustanawiania kanonicznych wartości domyślnych.is-ssh-up
sprawdza tylko, czy coś odpowiada na danym porcie i może wyglądaćźródło
Możesz użyć funkcji wieloznacznej
~.ssh/config
, umieszczając ten wpis na liście:Ale samo to nie spadnie do 22.
Jeśli umieścisz go na końcu, nadal możesz go zastąpić dla tych hostów, w których potrzebujesz 22, ustawiając inną wartość powyżej niego. (I zawsze możesz to zmienić w wierszu poleceń).
źródło