Czy mogę zdalny pulpit do innego użytkownika na tym samym komputerze?

13

Na Macu w pracy, który fizycznie przebywa w moim biurze, chcę, aby moje prace były oddzielone od moich osobistych, używając dwóch różnych kont użytkowników. Zwykle jestem zalogowany jako użytkownik „roboczy”. Ale chcę, aby były widoczne jednocześnie, ponieważ mam duży ekran. Myślę, że mógłbym uzyskać niezłą konfigurację, gdybym mógł użyć wbudowanego klienta pulpitu zdalnego lub klienta VNC innej firmy, aby połączyć się z ekranem logowania na istniejącym komputerze, aby móc wybrać innego użytkownika. Lub gdybym mógł połączyć się jako konkretny użytkownik, nawet jeśli fizyczna maszyna jest już zalogowana jako ktoś inny.

Zwykle używam mojego systemu z włączonym trybem „zdalnego zarządzania” (nie tylko pulpitu zdalnego) i często używam klienta VNC w domu, aby uzyskać dostęp do pulpitu Mac w pracy. Chociaż to nie jest moja codzienna rutyna. W tym trybie klient VNC natychmiast łączy się z istniejącym pulpitem. Czy istnieje sposób, aby zmusić to połączenie do przejścia na ekran logowania? Kiedy używam klienta VNC do łączenia się z istniejącym ekranem, widzę, że próbuje (otrzymujesz rodzaj nieskończonego regresu, którego możesz się spodziewać), więc podstawowe połączenie działa. Chcę tylko, żeby pozwolił mi wybrać innego użytkownika.

Edycja: Myślę, że część problemu polega na tym, że system może uruchamiać sesję serwera VNC w tle i czekać na połączenie. Łączy się z aktywną sesją. Wydaje się, że tak się dzieje, gdy mam włączone „zdalne zarządzanie” lub po prostu „udostępnianie ekranu”. Użycie innego użytkownika w poleceniu „otwórz” powoduje błąd związany z niemożnością kontrolowania własnego ekranu.

Dla jasności oba konta są na moim komputerze służbowym. Z domu chcę połączyć się z moim „użytkownikiem służbowym” na moim komputerze służbowym. Z mojego biurka w pracy zalogowanego jako „użytkownik służbowy” Chcę mieć możliwość połączenia się z „użytkownikiem osobistym” na moim komputerze służbowym.

Myślę, że mój prawdziwy problem dotyczy tego, co dzieje się po stronie serwera połączenia. Chcę, aby system operacyjny uruchomił okno logowania, nawet jeśli na głównym ekranie / klawiaturze jest zalogowany użytkownik. Wiem, że w pewnych okolicznościach użytkownik zdalnego logowania może otrzymać ekran logowania. Może być konieczne, żebym porzucił pomysł czasami łączenia się z zalogowanym użytkownikiem, a czasem połączenia ze świeżym logowaniem. Jeśli mogę całkowicie przejść do trybu świeżego logowania, to byłby początek.

W jaki sposób Mac OS decyduje, czy wyświetlać ekran logowania do połączenia zdalnego, a nie tylko podłączać cię do działającego pulpitu? Myślałem, że ma to związek z włączeniem „zdalnego zarządzania” w porównaniu do „udostępniania ekranu”. Ale po włączeniu funkcji „udostępniania ekranu” nadal mam połączenie z istniejącym.

Chris Quenelle
źródło
Chciałbym zapytać, czy jest jakiś defaults writehack, który złagodzi ograniczenia Screen Sharing.app, czy też jest rekomendacja dla darmowej przeglądarki VNC?
amdyes

Odpowiedzi:

14

ARD na swoje „konto służbowe”, a następnie wykonaj następujące czynności na komputerze zdalnym, aby otworzyć okno Udostępniania ekranu na swoim „koncie osobistym” na tym samym komputerze zdalnym.

Utwórz tunel SSH. Działa dla mnie przy użyciu 10.9.

Włącz logowanie zdalne (SSH) w Preferencjach systemowych> Udostępnianie oraz w Uruchom terminalu:

ssh -NL 5901:localhost:5900 localhost

Na koniec użyj funkcji udostępniania ekranu, aby połączyć się z hostem lokalnym: 5901 (zamiast domyślnego portu 5900). Zamiast portu 5901 możesz użyć dużo wyższego portu, który nie jest używany przez nic innego.

Aplikacja do udostępniania ekranu znajduje się tutaj: /System/Library/CoreServices/Screen Sharing.app

psota
źródło
To po prostu przekierowuje 5901 na 5900, prawda? W rzeczywistości nie uruchamia nowego procesu zdalnego logowania po stronie serwera.
Chris Quenelle,
SSH manpage :: -L Określa, że ​​dany port na hoście lokalnym (klienckim) ma być przekazany do danego hosta i portu po stronie zdalnej. :: -N Nie wykonuj polecenia zdalnego. Jest to przydatne tylko dla portów przekierowujących (tylko wersja protokołu 2).
mindmischief
O mój boże, to świetnie! Wreszcie mogę szybko sprawdzić takie rzeczy, jak zlokalizowane ciągi w menu bez uciekania się do maszyn wirtualnych lub wylogowywania się i ponownego logowania!
Asmus,
To naprawdę świetne, wreszcie coś w rodzaju zagnieżdżonego X w systemie Linux. Działa na Sierra. Otwarcie konta innego użytkownika na drugim wirtualnym pulpicie jest znacznie lepsze niż ciągłe przełączanie kont.
Pan Tao
1
To wciąż działa pod 10.14 Mojave. Dla nowicjuszy takich jak ja dodam kilka rzeczy, które spowodowały chwilowe zamieszanie: 1. wpisz polecenie ssh w Terminalu na koncie, które chcesz zdalnie INTO (nazwijmy to konto 1) i pozostaw ten proces uruchomiony w Terminalu . Terminal przekona cię o „autentyczności hosta„ localhost ”, ale wydaje się to być normalne. Jedyne informacje zwrotne, które zobaczysz, że proces SSH działa, znajdują się na pasku tytułowym okna Terminal. 2. Po uruchomieniu Udostępniania ekranu , robisz to na koncie, z którego chcesz zdalnie korzystać (nazywając to konto 2).
Gorb
4

Możesz określić konkretnego użytkownika za pomocą polecenia open w terminalu.

open vnc://user:password@hostname(or IP)

Można to również osiągnąć poprzez Go Connect to Server ( cmd+ k) z wyszukiwarki i wprowadzenie vnc: // nazwa hosta (lub IP)

Możesz mieć tylko dwóch użytkowników działających zdalnie na jednym komputerze.

tron_jones
źródło
1
W wersji 10.9 oba mówią: „Nie możesz kontrolować własnego komputera”. Oboje skutecznie otwierają Udostępnianie ekranu, co na to nie pozwala.
mindmischief
Pojawia się komunikat „Nie możesz kontrolować własnego ekranu”.
Chris Quenelle
Widzę z twojej edycji powyżej, że to nie jest możliwe. Czy próbowałeś połączyć się z każdym użytkownikiem osobno z komputera domowego?
tron_jones
Udało mi się sprawić, że zadziałało dzięki mojemu wyjaśnieniu
myślach
Jeśli masz ekran świeżego logowania na tym samym komputerze, na którym użytkownik już się zalogował, powiedz mi, które elementy zostały na nim włączone w ustawieniach „Udostępnianie”.
Chris Quenelle,
1

Aby wyjaśnić @mindmischief odpowiedź , oto kroki, aby ją ustawić:

  1. (opcjonalnie) Utwórz nowego użytkownika (np. vnc) w Preferencjach / Użytkownicy z hasłem.
  2. W preferencjach / Sharing , włączone udostępnianie ekranu i zdalne logowanie (również Zezwalaj na dostęp do niego).
  3. Sprawdź, czy ssh vnc@localhostdziała.
  4. Uruchom: ssh -NL 5901:localhost:5900 vnc@localhost(zgodnie z tym postem ).

Uwaga: Możesz użyć innego użytkownika niż vnc. W celu debugowania dodaj -vvvdo swojego sshpolecenia.

Teraz otwórz połączenie VNC za pomocą następującego polecenia:

open vnc://localhost:5901/
kenorb
źródło
w jaki sposób tworzenie nowego użytkownika jest opcjonalne? Jak mogę się połączyć bez posiadania użytkownika? Wygląda na to, że musisz określić jedną w „Zezwalaj na dostęp dla:”
trainoasis
@trainoasis Zawsze możesz ssh do innego istniejącego użytkownika.
kenorb,
0

Obecnie działa to od razu po wyjęciu z pudełka dzięki wbudowanej funkcji „Screen Sharing” (która jest tylko wbudowanym serwerem VNC).

Przejdź do „Preferencji systemowych → Udostępnianie” i włącz „Udostępnianie ekranu” dla wszystkich użytkowników. Teraz każde konto użytkownika będzie mogło łączyć się za pomocą dowolnego klienta VNC i zalogować się do własnej sesji.

kirelagin
źródło