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

23

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

Андрей
источник

Ответы:

19

Доступ пользователей по 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
источник
1
@Andrei: добавьте флаг -users после -configure со списком пользователей. Я добавил это в свой ответ.
Chealion
4
Кажется, что структура access_ssh со временем изменилась. Ключ 'user' в первой команде dscl теперь должен быть GroupMembership. Вторая команда dscl, добавляющая UID к участникам группы, все еще действительна.
Эрик
2
Эрик прав - @Chealion, не могли бы вы обновить свой ответ, изменив команду наdscl . append /Groups/com.apple.access_ssh GroupMembership <username>
rfay
2
Я на 10.11.5 и команды не жалуются, но пользователь все еще не может ssh. РЕДАКТИРОВАТЬ: попробовал это, и это сработало: support.apple.com/kb/PH18726
Jayen
1
Хотя этот ответ все еще может работать, ответ @ teppic предоставляет более правильный метод с использованием специального инструмента для редактирования групп dseditgroup.
Endareth
12

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

dscl . change /Groups/com.apple.access_ssh RecordName com.apple.access_ssh com.apple.access_ssh-disabled
Мармадук
источник
5

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

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…в меню «Перейти». введите адрес сервера для вашего компьютера:

vnc://x.x.x.x

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

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

ghoppe
источник
Нужно ли устанавливать удаленный рабочий стол Apple на удаленный Mac? Что мне делать после первой команды?
Андрей
1
Удаленный рабочий стол уже установлен в Системе. Я отредактирую свой ответ для инструкций удаленного рабочего стола. К сожалению. Возможно, я неправильно понял ваш вопрос ...
ghoppe
В любом случае, что мне нужно делать после первой команды, если я использую другой Mac для доступа к удаленному?
Андрей
2
Отредактировал мой ответ. Может быть способ включить ssh-доступ через командную строку, поэтому вам не нужно делать это через удаленный рабочий стол, но этот метод тоже должен работать.
ghoppe
Первая команда делает что-то подозрительное - она ​​меняет другие учетные записи, не только мою. Можно ли изменить его таким образом, чтобы другие учетные записи не затрагивались?
Андрей
5

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
teppic
источник