Як увімкнути віддалений доступ до іншого облікового запису на 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.