Как использовать ssh и удаленно управлять графическими интерфейсами на моем iMac с помощью удаленного входа/управления?

У меня возникли проблемы с возможностью полного удаленного управления моим компьютером. Под полным я подразумеваю возможность {управлять файлами, получать доступ к терминалу, получать доступ к графическому интерфейсу, входить в систему}, не позволяя локальному пользователю взять на себя управление.

Мне нужно иметь возможность управлять экраном, например, запускать программу установки. Проблема, с которой я сталкиваюсь при совместном использовании экрана и удаленном рабочем столе, заключается в том, что локальный пользователь может видеть, как я вхожу в систему, а затем беру управление с помощью мыши. Затем они вошли в мою административную учетную запись. Они также не могут использовать свою учетную запись, пока я вхожу в свою. Как этого избежать?

Еще одна проблема, с которой я столкнулся, заключается в том, что, хотя к удаленному компьютеру можно получить доступ через общедоступный IP-адрес, и он указан в Finder в локальной сети, похоже, нет способа просто найти компьютер удаленно через iCloud. Удаленный вход — пример программы, которая это делает. Даже если бы я отслеживал, где компьютер был подключен к Интернету, IP-адрес может измениться. Есть ли способ найти компьютер по учетной записи, а не по сетевому адресу?

введите описание изображения здесь

Подводя итог, я хочу:
1. Иметь возможность запускать установщик с графическим интерфейсом , безопасно изолированный от локальных пользователей.
2. Иметь возможность входа по ssh в учетную запись администратора, безопасно изолированную от локальных пользователей.
3. Иметь возможность находить мой компьютер для подключения так же надежно, как «Найти мой Mac», используя что-то надежное, например, мою учетную запись iCloud, вместо сетевого адреса, который может измениться.

Ответы (3)

У Apple Remote Desktop (ARD) есть режим Curtains, который блокирует локального пользователя от просмотра того, что происходит на экране. Это может удовлетворить ваши потребности. https://www.apple.com/remotedesktop/remoteassistance.html

Я полагаю, что это дает частичный ответ на 1, но как насчет 2 и 3? И не лишает ли это местных пользователей возможности выполнять работу?
Что касается части 2, да, вы можете отправлять команды SSH на целевой компьютер из ARD. Что касается части 3, похоже, вы можете использовать ARD iCloud спиной к моему Mac apple.stackexchange.com/questions/107399/…
Вам не нужно ARD, чтобы сделать № 2 и № 3. Также по теме: apple.stackexchange.com/questions/53719/…
Вам также не нужен ARD для № 1

Вместо предлагаемых методов вы можете войти в систему, пока другой пользователь вошел в систему, и начать новый сеанс вместо совместного использования экрана. Это не будет видно или доступно для локального пользователя. Используйте vnc://<mac name or ip>из окна Connect в Finder для подключения к системе. Я не уверен, смогу ли я постоянно загружать изображение, но в показанном диалоговом окне вас спросят, хотите ли вы поделиться сеансом другого пользователя или войти в новый сеанс под своим именем. Это работает только в том случае, если локальный пользователь не совпадает с пользователем, к которому вы пытаетесь войти.

вы можете поделиться существующим сеансом или создать новый

Это работает так же, как быстрое переключение пользователей, но вместо локального переключения учетных записей вы можете использовать их одновременно, локально и удаленно! Это также означает, что вы можете подойти к компьютеру и выйти из системы текущего пользователя или вернуться к окну входа в систему, и вы увидите, что вы вошли в систему в данный момент. Это также позволяет вам локально взять на себя удаленный сеанс, если вы хотите.

Удаленный доступ вне сети

Если вам нужен удаленный доступ из-за пределов сети, это другое дело. И если вы тоже не знаете адреса, это тоже проблема. Предлагаемая вами функциональность обычно используется в бизнес-сетях, где есть локальная административная система. Если у вас есть только одна удаленная система (например, один Mac где-то в доме), вы можете справиться с ней с помощью iCloud с функцией «Вернуться к моему Mac». Другим способом может быть переадресация портов соединения VNC, но это оставляет огромную дыру в безопасности и не рекомендуется. Вы также можете использовать туннели SSH, то есть вам нужно оставить открытым только порт SSH, а затем в командной строке вы просто перенаправляете удаленный порт VPN через это безопасное соединение, например:

ssh user@mac-somewhere-else -L1234:localhost:5900

Затем, пока вы оставляете это открытым в терминале, вы используете vnc://localhost:1234в диалоговом окне Finder «Подключиться к» (Command-K), и это будет использовать туннель SSH для другого Mac.

Однако, если вы нацелены на множество удаленных машин или мобильных машин или систем, к которым вы не можете получить прямой доступ, вам потребуется установить специальный агент, который использует обход NAT через стороннюю службу. Это делают ранее упомянутые инструменты, т.е. LogMeIn, TeamViewer и им подобные.

Если у вас есть несколько удаленных сетей, к которым вы регулярно подключаетесь, рассмотрите возможность использования VPN-соединений. Это позволяет удаленно подключаться к сети и получать доступ к внутренним ресурсам.

Третьим вариантом доступа к удаленным сетям является использование блока перехода или узла-бастиона. Это может быть простой Mac Mini со статическим IP-адресом и SSH (или, может быть, даже VPN), и вы сначала входите в него и туннелируете к нему VNC. Затем на этом Mac вы используете боковую панель Finder для автоматического обнаружения всех других систем в сети.

Чтобы иметь лучший набор вариантов для решения этой проблемы, нам потребуется больше информации о вариантах использования, а также о том, к каким сетям и т. д. вы действительно хотите подключиться.

Вы конкретно имеете в виду «Удаленное управление»? Я думаю, что это может полностью ответить на вопрос 1, и он встроен, в отличие от «Удаленного рабочего стола», который мне пришлось бы купить. Однако как насчет смены IP-адреса? Как я на самом деле найти компьютер удаленно в первую очередь? Я не вижу другого своего компьютера в списке Finder, когда нахожусь в удаленном месте.
Я добавил некоторые параметры удаленного доступа, но это действительно зависит от того, к каким «удаленным» системам вы пытаетесь подключиться.

Отвечаю на вопросы по порядку....

  1. Если вы не готовы платить за премиум-приложение, такое как ARD или LogMeIn , вы не получите эти функции.

Как упоминалось в другом ответе, у ARD есть « Режим шторки » -

Для тех случаев, когда вы хотите, чтобы ваши действия были скрыты от конечного пользователя, есть режим шторки. Это позволяет блокировать вид виртуальной шторкой, сохраняя при этом полный контроль над экраном. Он идеально подходит для тех, кто работает с общедоступными системами.

LogMeIn имеет функцию гашения экрана хоста :

Защитите свои данные, отключив дисплей хоста во время сеанса удаленного управления.

Заблокируйте клавиатуру и мышь хоста, чтобы никто, сидящий за хостом, не мог вводить данные во время сеанса удаленного управления.

Я лично использую Teamviewer, и хотя эта опция доступна в Windows, она недоступна в macOS или Linux. По-видимому, это как-то связано с тем, как (легко) Windows обрабатывает DPMS (системы управления питанием дисплея) и как (плохо) это реализует macOS/Linux.

(исходя из опыта, режим шторки ARD был в лучшем случае «сомнительным»)

  1. По умолчанию вы можете использовать ssh для любой учетной записи (за исключением root), если у вас включен удаленный вход. Вы можете войти в систему, пока кто-то еще сидит за компьютером, и он даже не узнает, что вы были там. Это по умолчанию. Если вам нужен root-доступ, создайте учетную запись «admin» и suрутируйте или выполняйте команды через sudo.

  2. Чтобы надежно найти свой компьютер, используйте DDNS (динамический DNS) и назначьте своему компьютеру полное доменное имя, например (foobar.dyndnsprovier.com).

freedns.Afraid.org предоставляет хороший бесплатный сервис DynDNS, который вы можете использовать для доступа к вашему компьютеру (или домашней сети), даже если ваш IP-адрес изменится. В вашем случае вам нужно будет выполнить скрипт через launchd(или chron), который периодически обновляет IP. После этого вы можете получить доступ к своему компьютеру, набрав полное доменное имя (foobar.dyndnsprovider.com). Сценарий и способ его реализации на вашем компьютере выходят за рамки этого ответа.

ГЛАВНОЕ ПРЕДОСТЕРЕЖЕНИЕ : Если машина находится за брандмауэром, который вы не контролируете и который запрещает SSH-трафик или если он не привязан к вашему IP-адресу или порту, вам не повезло — это не сработает. Используйте LogMeIn или TeamViewer.

Что касается вашего предостережения, любой тип информации может быть обернут в любой протокол, просто должна быть поддержка кодирования и декодирования. Итак, если возможен какой-то тип соединения, например «LogMeIn», то это доказывает, что теоретически я могу безопасно идентифицировать, подключать и отправлять информацию и, таким образом, полностью обертывать ssh или любой другой тип информации для взаимодействия с машиной. . Вы хотите сказать, что встроенные бесплатные инструменты просто не предназначены для этого?
LogMeIn работает путем «встречи» клиента/удаленного «в облаке», так сказать, а не по IP; клиент понятия не имеет, где находится пульт. Предостережение, о котором я говорю, заключается в использовании полного доменного имени для подключения. Независимо от используемого протокола, как вы собираетесь заставить машину с NAT инициировать соединение?