Как включить удаленный доступ для другой учетной записи на Mac удаленно через SSH?

У меня есть права администратора на удаленном компьютере Mac. Я могу получить к нему доступ через SSH. Mac имеет другую учетную запись пользователя, которая не имеет удаленного доступа. Как я могу удаленно (через SSH) включить удаленный доступ для другой учетной записи?

4 ответа

Решение

Доступ пользователей по SSH контролируется локальной копией Служб каталогов. (Контролируется с помощью dscl)

Первый прогон dscl . list /Groups | grep 'access_ssh', Если возвращаемое значение говорит com.apple.access_ssh-disabled тогда все пользователи имеют доступ по SSH. Если нет, то нам нужно дать пользователю доступ.

Чтобы добавить пользователя, вам нужно запустить:

sudo dscl . append /Groups/com.apple.access_ssh user USERNAME

(замените USERNAME коротким именем пользователя), а также:

sudo dscl . append /Groups/com.apple.access_ssh groupmembers `dscl . read /Users/USERNAME GeneratedUID | cut -d " " -f 2`

(замените USERNAME на короткое имя пользователя)

(Последнее немного благодаря Риду Стоунеру на lists.apple.com)

Чтобы добавить / включить удаленное управление только для определенных пользователей (добавьте флаги VNC из ответа ghoppe, если вы хотите VNC):

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -users short,usernames,seperated,by,commas -access -on -restart -agent -privs -all -allowAccessFor -specifiedUsers

Узнайте больше, запустив sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -h

Основываясь на ответе Chealion, я придумал это, чтобы позволить ВСЕМ пользователям войти в ssh:

dscl . change /Groups/com.apple.access_ssh RecordName com.apple.access_ssh com.apple.access_ssh-disabled

ssh доступ предоставляется членам com.apple.access_ssh группа. Это группа, которую вы редактируете, когда вносите изменения в службу удаленного входа через преф-панель " Общий доступ".

В то время как dscl можно использовать для редактирования членства в группах (как описано в других ответах), dseditgroup это более чистый способ изменить com.apple.access_ssh членство в группах из командной строки.

чтобы добавить пользователя:

sudo dseditgroup -o edit -t user -a USERNAME com.apple.access_ssh

удалить пользователя:

sudo dseditgroup -o edit -t user -d USERNAME com.apple.access_ssh

Включить удаленный рабочий стол через командную строку:

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -clientopts -setvnclegacy -vnclegacy yes -clientopts -setvncpw -vncpw mypasswd -restart -agent -privs -all

Отключить совместное использование экрана:

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -deactivate -configure -access -off

РЕДАКТИРОВАТЬ

Хорошо, я, возможно, неправильно понял ваш вопрос. Под "Удаленным доступом" я предположил, что вы имели в виду удаленный рабочий стол, но теперь я вижу, что вы просто хотите включить ssh-доступ для другой учетной записи, верно?

Мой ответ поможет вам на полпути. После включения Remote Desktop, как показано, затем подключитесь к удаленному Mac, чтобы изменить ssh-доступ пользователя через Системные настройки.

Чтобы подключиться к удаленному Mac, перейдите в Finder и выберите Connect to Server… под меню Go. введите адрес сервера для вашего компьютера:

vnc://x.x.x.x

Где xxxx - это IP-адрес или URI удаленного компьютера. Поскольку вы связаны с SSH, я полагаю, вы уже знаете это.

Теперь вы можете использовать удаленный рабочий стол, чтобы перейти к "Системные настройки"> "Учетные записи" и установить флажок, чтобы разрешить другой учетной записи войти в систему на компьютере…

Другие вопросы по тегам