Jak wyłączyć wiadomość powitalną po zalogowaniu SSH?

32

Zmieniłem się /etc/issue.net, więc ustawiłem wiadomość „osobistą” po wpisaniu nazwy użytkownika w terminalu SSH. Teraz próbuję zmienić tekst powitalny po udanym zalogowaniu.

Znalazłem wiele postów na temat /etc/motdpliku, ale nie ma części „Witaj w wersji Ubuntu blabla numer wersji itd.” + „* Dokumentacja URL”?

Po prostu nie chcę wyświetlać informacji o systemie operacyjnym w moim terminalu SSH, już wiem, co zainstalowałem. :) Chcę tylko zobaczyć mój ostatni login. A także nie błędy; błędy należą do pliku dziennika.

Który plik muszę edytować?

Terradon
źródło

Odpowiedzi:

46

Wiadomości powitalne są generowane przez pliki znajdujące się w /etc/update-motd.d/.

Od man update-motd:

Skrypty wykonywalne w /etc/update-motd.d/* są wykonywane przez pam_motd (8) jako użytkownik root przy każdym logowaniu, a informacje te są łączone w / var / run / motd.

Jeśli więc nie chcesz, aby dane wyjściowe tych skryptów były wyświetlane podczas logowania, po sshprostu usuń na nich flagę wykonania:

sudo chmod -x /etc/update-motd.d/*

Teraz, jeśli chcesz pokazać coś, co chcesz podczas logowania, masz dwie opcje:

  • Stwórz skrypt, włóż go /etc/update-motd.d/, spraw, by był wykonywalny, upewnij się również, że wyświetla się w STDOUT.

  • sshma Banneropcję. Możesz umieścić tekst w pliku i ustawić go w Banneropcji, aby zawartość pliku była wyświetlana podczas logowania przez ssh. Pamiętaj, że dotyczy to tylko ssh.

    Banner /etc/foobar
    

    Od man 5 sshd_config:

     Banner  The contents of the specified file are sent to the remote user
             before authentication is allowed.  If the argument is “none” then
             no banner is displayed.  This option is only available for
             protocol version 2.  By default, no banner is displayed.
    
heemayl
źródło
8
Wszystkie moje ulubione odpowiedzi zaczynają się od „From man xyz”;)
AB
Dziękuję Ci! Teraz znam związek między tymi plikami. Nie chmod je, po prostu dodałem # przed niektórymi wierszami, których nie chcę pokazywać.
Terradon,
@Terradon Tak, to też by zrobiło ... po prostu uogólniłem rozwiązanie, ponieważ wiele osób nie chce zaglądać do pliku zbyt wiele ..
heemayl
2
Świetne czyste rozwiązanie, ponieważ chmodingpliki oznaczają, że nie muszę ich edytować. Miły!
culix
... dlaczego wkładają tyle bzdur w motd i marnują czas ludzi na wyłączanie go: s Ładne rozwiązanie z chmod -x!
Motsel
4

Możesz także pam_motdcałkowicie nuke :

sed -i '/^[^#]*\<pam_motd.so\>/s/^/#/' /etc/pam.d/sshd

Połączenia PAM w pam_motdzależności od ustawień w /etc/pam.d, i zazwyczaj wpisy są:

$ grep pam_motd /etc/pam.d -R
/etc/pam.d/login:session    optional   pam_motd.so  motd=/run/motd.dynamic noupdate
/etc/pam.d/login:session    optional   pam_motd.so
/etc/pam.d/sshd:session    optional     pam_motd.so  motd=/run/motd.dynamic noupdate
/etc/pam.d/sshd:session    optional     pam_motd.so # [1]

Komentowanie pam_motdwierszy z tych plików spowoduje jego wyłączenie.

muru
źródło
Dziękuję za poświęcony czas, ale dzięki „Nuke im wszystkim” nie wiem, co robię. (Jestem nowy w Linuksie / Ubuntu).
Terradon,
1
@Terradon, że mówisz PAM, żeby nie dzwonić pam_motd.so, to wszystko.
muru
Dzięki, przyjrzę się bliżej, co dokładnie PAM.
Terradon,
3

Innym sposobem, który nie wymaga uprawnień administracyjnych, jest umieszczenie pustego pliku o nazwie

.hushlogin

do twojego katalogu $ HOME (używając na przykład touch ~/.hushlogin).

Źródło, które zawiera dodatkowe informacje, w tym możliwe wady tego podejścia : https://debian-administration.org/article/546/Giving_yourself_a_quieter_SSH_login

Eph
źródło
Elegancki, prosty, nie zadziera z innymi użytkownikami, nie sudo. Dzięki.
Jan Werkhoven