Як увімкнути віддалений доступ до іншого облікового запису на Mac віддалено через SSH?


22

Я маю права адміністратора на віддаленому комп'ютері 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 також коротким ім'ям користувача)

(Останній біт - завдяки Риду Стоунеру в списках.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


1
@Andrei: додайте прапор -users після -конфігуруйте зі списком користувачів. Я додав це до своєї відповіді.
Chealion

4
Здається, що структура access_ssh з часом змінилася. Ключовим "користувачем" у першій команді dscl тепер має бути GroupMembership. Друга команда dscl, що додає UID до членів групи, все ще діє.
Ерік

2
Ерік вірно - @Chealion, чи можете ви оновити свою відповідь, змінивши команду наdscl . append /Groups/com.apple.access_ssh GroupMembership <username>
rfay

2
Я 10.11.5, і команди не скаржаться, але користувач все одно не може ssh. EDIT: спробував це, і спрацювало: support.apple.com/kb/PH18726
Jayen

1
Хоча ця відповідь все ще може працювати, відповідь @ teppic забезпечує більш правильний метод, використовуючи певний інструмент для редагування груп dseditgroup.
Ендарет

11

Виходячи з відповіді Челіона, я придумав це, щоб дозволити ВСІМ користувачам забиватися:

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

EDIT

Гаразд, я, можливо, неправильно зрозумів ваше запитання. Під "Віддаленим доступом" я припускав, що ви маєте на увазі віддалений робочий стіл, але тепер я бачу, що ви просто хочете включити доступ до ssh для іншого облікового запису, правда?

Моя відповідь наводить вас на півдорозі. Після ввімкнення віддаленого робочого столу, як показано, а потім підключіться до віддаленого Mac, щоб змінити ssh-доступ користувача через System Prefs.

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

vnc://x.x.x.x

Де xxxx - IP-адреса віддаленого комп'ютера або URI. Оскільки ви пов’язані з ssh, я припускаю, що ви це вже знаєте.

Тепер ви можете використовувати віддалений робочий стіл для переходу до системних налаштувань> Облікові записи та натисніть поле, щоб дозволити іншому обліковому запису увійти на комп'ютер ...


Чи потрібно встановити Apple Remote Desktop на віддаленому 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.