Pomijanie banera ssh z klienta OpenSSH

34

Loguję się na serwerze, który ma ustawiony baner ssh. Chciałbym go stłumić (szczególnie do użytku nieinteraktywnego). Nie mam dostępu do serwera sshd_config.

Najlepszym rozwiązaniem, jakie znalazłem do tej pory, jest ustawienie tej LogLevel ERRORopcji na kliencie. Problem polega na tym, że spowoduje to pominięcie wszelkich INFOkomunikatów poziomu, które niekoniecznie chcę ukryć (poszukaj przykładów w źródle OpenSSH logit). Mógłbym również użyć, ssh -qale to jeszcze bardziej stłumi.

Czy są jakieś inne bardziej szczegółowe rozwiązania?

Michael Hoffman
źródło

Odpowiedzi:

43

AFAIK, „ ssh -q” lub „ LogLevel QUIET~/.ssh/configto „tradycyjne” sposoby wyciszenia banera. Masz już „lepszy” kompromis z „ LogLevel ERROR”.

Bardziej specyficznym rozwiązaniem byłoby użycie niestandardowej łatanej wersji klienta ssh, jeśli jest to opcja.

Pascal Thivent
źródło
2
Myślę, że to LogLevel ERRORpomija banner tylko w nowszych wersjach OpenSSH. W starszych wersjach LogLevel QUIETlub ssh -qsą wymagane.
Michael Hoffman
3
Jeśli -qnie działa (nie działało to w przypadku Debiana 7), możesz użyć rozwiązania z innego pytania: serverfault.com/a/764403/62024
Nux
1

Możesz także użyć:

Banner none

na

/etc/ssh/sshd_config
Pedro Lobito
źródło
1
OP określił „Nie mam dostępu do serwera sshd_config”, więc niestety to nie odpowiada na pytanie.
Pan Shunz
@MrShunz Masz rację, ale doszedłem do tej strony, szukając Suppressing ssh banner from OpenSSH clienti tej odpowiedzi, chociaż nie w pełni odpowiada na pytanie OP, może pomóc przyszłym użytkownikom.
Pedro Lobito
0

Zainstaluj hexedit:

apt-get update && apt-get install hexedit

Utwórz kopię zapasową pliku binarnego sshd i utwórz edytowalną kopię roboczą (jako root):

  cp -p /usr/sbin/sshd /tmp/sshd.backup
  cp -p /tmp/sshd.backup /tmp/sshd.new

Zaktualizuj plik binarny za pomocą hexedit:

hexedit /tmp/sshd.new

Naciśnij TAB, aby przełączyć z HEX are do obszaru ASCII.

Użyj CTRL + S, aby wywołać monit wyszukiwania i wyszukać tekst w banerze, niż chcesz ukryć, np. „OpenSSH_7.4”.

Powinieneś zobaczyć coś takiego:

0007DA54   61 67 65 6E  74 00 00 00  4F 70 65 6E  agent...Open
0007DA60   53 53 48 5F  37 2E 34 70  31 20 52 61  SSH_7.4p1 Ra
0007DA6C   73 70 62 69  61 6E 2D 31  30 2B 64 65  spbian-10+de
0007DA78   62 39 75 32  00 00 00 00  4F 70 65 6E  b9u2....Open

Za pomocą klawiszy strzałek zaznacz początek ciągu, który chcesz zaktualizować, i wpisz zamiennik.

Zachowaj ostrożność, aby nie przekraczać długości oryginalnego banera. Możesz także nacisnąć TAB, aby przełączyć się z powrotem do obszaru HEX, jeśli chcesz po prostu wyzerować ciąg znaków, ustawiając każde słowo na „00”.

Twoja zmiana powinna wyglądać mniej więcej tak:

0007DA54   61 67 65 6E  74 00 00 00  48 65 72 65  agent...Here
0007DA60   20 62 65 20  64 72 61 67  6F 6E 73 2E   be dragons.
0007DA6C   20 54 75 72  6E 20 42 61  63 6B 00 00   Turn Back..
0007DA78   00 00 00 00  00 00 00 00  4F 70 65 6E  ........Open

Zapisz zmiany za pomocą CTRL + x i Y.

Sprawdź, czy są jakieś instancje, które przeoczyliśmy (nie oczekujemy teraz żadnych wyników):

strings /tmp/sshd.new | grep Rasp

Zaktualizuj sshd i ponownie uruchom usługę dla dobrego pomiaru:

rm /usr/sbin/sshd
cp -p /tmp/sshd.new /usr/sbin/sshd
systemctl restart ssh.service

Sprawdź, czy nadal możesz SSH (w przeciwnym razie przywróć kopię zapasową lub ponownie zainstaluj OpenSSH z poziomu menedżera pakietów!):

ssh -vv user@ip

UWAGA!!

Ta zmiana będzie tymczasowa, ponieważ przy każdej aktualizacji OpenSSH plik binarny zostanie zastąpiony.

kokane
źródło
2
Chociaż prawdą jest, że pytanie tak naprawdę nie wskazywało, że nie mają oni dostępu do zapisu sshd, wydaje się dość prawdopodobne, ponieważ nie określiło żadnego sshd_configdostępu. Szukają rozwiązania opartego na kliencie.
Mike Scott,