Czy można skonfigurować ssh (na systemie Linux), aby umożliwić dostęp tylko do tunelowania? Czy użytkownik może konfigurować tunele, ale nie może uzyskać plików powłoki / dostępu?
linux
ssh
ssh-tunnel
druga
źródło
źródło
-N
, ma dostęp do powłoki. To naprawdę nie rozwiązuje problemu i jest niebezpieczne./bin/false
powłokę, nie będziesz mieć dostępu do powłoki, ponieważ każda sesja logowania zostanie natychmiast zakończona.W pliku użytkownika .ssh / Author_keys umieść coś takiego:
Zasadniczo więc elementy sterujące byłyby przed kluczem publicznym ssh użytkownika oddzielonym spacją. W tym przykładzie połączenia wykorzystujące określony klucz publiczny będą mogły wykonywać przekierowanie portów SSH tylko na serwer MySQL 192.168.1.10 i serwer WWW 10.0.0.16 i nie będą miały przypisanej powłoki (no-pty). Pytasz konkretnie o opcję „no-pty”, ale inne mogą być również przydatne, jeśli użytkownik ma tunelować tylko do określonych serwerów.
Spójrz na stronę podręcznika dla sshd, aby uzyskać więcej opcji dla pliku autoryzowanych_kluczy .
Zauważ, że wrażenia użytkownika mogą wyglądać nieco dziwnie: kiedy ssh się pojawi, będzie wyglądało na to, że sesja się zawiesiła (ponieważ nie dostają pty). W porządku. Jeśli użytkownik określi przekierowanie portów, na przykład „-L3306: 192.168.1.10: 3306”, przekierowanie portów będzie nadal działać.
W każdym razie spróbuj.
źródło
no-pty
nie uniemożliwia dostępu do powłoki, po prostu nie daje jej powłoki. Nie wyświetla monitu (tzn. „Wydaje się zawiesić”), ale nadal możesz wydawać polecenia w porządku. Potrzebujesz tejcommand="..."
opcji,.ssh/authorized_keys
jeśli chcesz ograniczyć dostęp do powłoki z tego miejsca.Daj użytkownikowi powłokę, która pozwala tylko na wylogowanie, np
/bin/press_to_exit.sh
W ten sposób może pozostać zalogowany tak długo, jak chce, z aktywnymi tunelami, ale nie uruchamiać żadnych poleceń.
Ctrl-c
zamyka połączenie.źródło
Przypisz powłokę, która nie pozwala użytkownikowi się zalogować.
na przykład
uniemożliwiłoby im to otrzymanie zachęty powłoki i dałoby im 60-sekundowy limit czasu - jeśli przez 60 sekund nie ma aktywnego połączenia, to zakończy działanie i tym samym całkowicie je rozłączy (zwiększ liczbę zgodnie z wymaganiami).
Nie mogą również wykonać polecenia zdalnego, ponieważ powłoka im na to nie pozwala.
źródło
logout
” na normalnym./sbin/nologin
, który można dostosować za pomocą przyjaznej dla użytkownika wiadomości w/etc/nologin.txt
.Moim rozwiązaniem jest zapewnienie użytkownikowi, który może tylko tunelować, bez interaktywnej powłoki , ustawienia tej powłoki w / etc / passwd na / usr / bin / tunnel_shell .
Wystarczy utworzyć plik wykonywalny / usr / bin / tunnel_shell za pomocą nieskończonej pętli .
Dodatkowo skorzystaj z opcji
AllowGroups
iMatch Group
.W pełni wyjaśnione tutaj: http://blog.flowl.info/2011/ssh-tunnel-group-only-and-no-shell-please/
źródło