jak ssh -Y, a następnie su - <inny użytkownik> i nadal przekazywać aplikacje X na komputer lokalny

13

Łatwo jest „pobrać” (tj. Narysować lokalnie) zdalnie działającą aplikację Linux: Jeśli ssh -Yprzejdę na komputer zdalny i uruchomię aplikację, aplikacja ta z pewnością wyskoczy na moim lokalnym pulpicie.

Jeśli jednak podczas ssh'ed na zdalnym komputerze, ja sudo innego użytkownika, nie mogę przekazać aplikacji X na mój komputer lokalny. To mówi wrong authentication.

Nie jestem pewien, jak rozwiązać tę sprawę. echo $DISPLAYJest nadal poprawna (ustawiany przez początkowego ssh -Ylogowania), ale ciasteczko sesji jest prawdopodobnie ustawiona tylko dla początkowego użytkownika, który zalogował się ssh.

Jak mogę przezwyciężyć tę trudność i przekazać dalej inne aplikacje X, które są uruchamiane przez różnych użytkowników?

Powodem, dla którego nie ssh'ing bezpośrednio jest to, że nie chcę, aby ten użytkownik był dostępny przez ssh (jest to użytkownik „virtualbox”, który jest oczywiście łatwym celem dla botów próbujących ssh na ten serwer) ...

nass
źródło

Odpowiedzi:

12

Kiedy łączysz się z maszyną do usuwania za pośrednictwem ssh z włączonym przekazywaniem X11, ssh na serwerze tworzy .Xauthorityplik w katalogu osobistym użytkownika. Ponieważ ssh nasłuchuje X11 na gnieździe TCP, każdy może się połączyć. Ponieważ każdy może się połączyć, potrzebujemy jakiegoś sposobu, aby uniemożliwić każdemu korzystanie z Twojego wyświetlacza. Odbywa się to za pomocą tego .Xauthoritypliku. Plik zawiera „ciasteczko”, które jest prezentowane serwerowi X11, który weryfikuje, czy klient powinien mieć możliwość połączenia.

Pomijając wszystkie szczegóły, jeśli skopiujesz ten .Xauthorityplik do katalogu domowego użytkownika docelowego (i nadasz mu własność), powinieneś być w stanie się połączyć.

Patrick
źródło
Warto zauważyć, że nawet po wykonaniu tej czynności zmienna DISPLAY musi zostać poprawnie ustawiona po zmianie użytkownika. Może to stanowić problem podczas używania „sudo”, które może odfiltrowywać środowisko.
Chris Arguin
8
  1. ssh -Y do zdalnego komputera jak ty.
  2. Tam już wpisz xauth list. Pojawi się lista elementów MAGIC-COOKIE. Twoja sesja logowania najprawdopodobniej jest najniższa na liście. (Sprawdź to, patrząc na nazwę hosta i kod numeryczny UNIX, i porównując go z nazwą hosta, z którego wykonałeś ostrzał, i bieżącym localhost: ## DISPLAY zmienna env.)
  3. Przełącz użytkowników.
  4. Wpisz xauth add+ całą linię MAGIC-COOKIE z góry.
  5. Grafika powinna się teraz pojawić. Przetestuj to szybko xlogo.
Niespokojny
źródło
2
bez „+” w dodawaniu xauth. Np. Wystarczy xauth dodać ubuntu / unix: 10 MIT-MAGIC-COOKIE-1 6b49de7c34409d5ac69beab31d12ec94
Tuntable
1
USER="otherusername" && MAGIC_COOKIE=`xauth list | tail -n1` && su -c "xauth add $MAGIC_COOKIE" $USER && su - $USER
7yl4r
3

Podoba mi się odpowiedź Randy'ego, ale dla mnie to nie zadziałało.

Oto, co mam do pracy:

  1. ssh -Y as user1
  2. xauth list | grep `uname -n`
  3. Przełącz na użytkownika 2
  4. unset XAUTHORITY
  5. xauth generate :0 .
  6. xauth add :0 . <KEY-FROM-STEP-2>

Zwróć uwagę na dwa okresy w krokach 5 i 6.

Jeśli tylko podążę za odpowiedzią Randy'ego, XAUTHORITYzmienna user2 nadal wskazuje .Xauthorityplik użytkownika1. A jego składnia klawisza + nie działała.

Jon Daley
źródło
2

To nie jest odpowiedź, więc jeśli ją znajdziesz, to oczywiście lepiej.

Jeśli nie, a to jest podstawowa przyczyna twojej zagadki:

Powodem, dla którego nie ssh'ing bezpośrednio jest to, że nie chcę, aby ten użytkownik był dostępny przez ssh (jest to użytkownik „virtualbox”, który jest oczywiście łatwym celem dla botów próbujących ssh na ten serwer) ...

Nie wydaje mi się to dobrym rozumowaniem. „Jaki cel mają boty” WRT dobrze skonfigurowany sshd jest w dużej mierze nieistotny. Czy będą brzęczeć wokół portu 22 w dowolnym miejscu? Najwyraźniej tak. Czy to oznacza, że ​​faktycznie mają szansę na sukces?

Spróbuj googlować po historii o kimś, kto miał przypadkowego anonimowego bota z powodzeniem włamał się do sshd. Jestem pewien, że to musiało się gdzieś przytrafić (i oczywiście możesz nigdy nie wiedzieć), ale nie mogę znaleźć żadnych raportów na ten temat. Interesująco byłoby przeczytać, jaka była używana konfiguracja.

SSH jest bardzo bezpieczny, jeśli jest właściwie stosowany. Gdyby tak nie było, handel internetowy nie byłby możliwy. Dlaczego więc te boty przeszkadzają? Przez „właściwie używane” mam na myśli przede wszystkim obowiązkowe pary kluczy publiczny / prywatny. Jeśli to zrobisz i jesteś pewien, że twój klucz prywatny jest bezpieczny (i powinieneś być), bądź pewny co do sshd.

Myślę, że powodem wszystkich tych „prób włamania” jest duża grupa użytkowników, którzy nie robią takich rzeczy, jak zadawanie pytań na temat U&L;) i nie czytają stron podręcznika i używają wyłącznie ochrony hasłem, co jest trochę jak pozostawienie karty bankomatowej gdzieś w maszynie ze znakiem „Zgadnij!”.

Jeśli jednak myślisz o swoim prywatnym kluczu, takim jak karta bankomatowa - jako o czymś fizycznie zabezpieczonym przez ciebie (którym w istocie jest), cel staje się znacznie bardziej eteryczny. Wszystko, co mogą zrobić boty, to udowodnić, że tak, naprawdę zajęłoby tysiące maszyn tysiące lat wspólnej pracy, aby brutalnie użyć klucza 2048-bitowego.

Jeśli masz dość czytania raportów o próbach włamania, zmień port. Widziałem tutaj ludzi, którzy kupowali to poo-poo jako „bezpieczeństwo przez zaciemnienie”, jednak sshd, który jest odpowiednio zabezpieczony na porcie 22, nie będzie mniej bezpieczny na porcie 57, ale nie będzie przypadkowo przeszkadzał. Oczywiście wszyscy twoi wrogowie-drony mogą po prostu przeskanować cały adres IP - ale wiesz co? Oni nie. Zakładam, że dzieje się tak, ponieważ szukają kogoś, kto ma system, który nawet na to nie patrzył /etc/ssh/sshd_config, a tym bardziej sam się kształcił i dostrajał.

Złotowłosa
źródło
Zgadzam się ze wszystkim, co mówisz. ale zawsze jestem szalenie niepewny (czy nie tego tego uczą w wielu sytuacjach po poparzeniu?). Szczerze mówiąc, komputer, na który próbuję się zalogować, to zapora ogniowa (brak dostępu z zewnątrz). Jego ssh jest na wysokim porcie, ma trudne hasło, ale nadal nie mogę przestać myśleć, że „virtualbox” to nazwa publiczna. taki, który ktoś gdzieś może włączyć do kodu bota. Klucze SSH są wspaniałym rozwiązaniem, szczególnie jeśli są używane z ochroną hasłem. Ale gdybym miał z nich korzystać, musiałbym nosić na USB lekką dystrybucję linux.
nass