如何通过SSH远程启用Mac上另一个帐户的远程访问?


23

我在远程Mac计算机上具有管理员权限。我可以通过SSH访问它。Mac有另一个用户帐户,该帐户没有远程访问权限。如何远程(通过SSH)为其他帐户启用远程访问?

Answers:


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)

(最后一点要感谢list.apple.com上的Reed Stoner

要仅为特定用户添加/启用远程管理(如果需要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:在-configure之后添加带有用户列表的-users标志。我已将其添加到我的答案中。
Chealion 2010年

4
似乎access_ssh的结构已随着时间而改变。现在,第一个dscl命令中的键“用户”应该是GroupMembership。将UID附加到组成员的第二个dscl命令仍然有效。
Erik 2012年

2
Erik是正确的-@Chealion,能否将命令更改为dscl . append /Groups/com.apple.access_ssh GroupMembership <username>
rfay 2012年

2
我在10.11.5上,命令没有抱怨,但是用户仍然不能ssh。编辑:尝试过此方法,它起作用了:support.apple.com/kb/PH18726
Jayen 2016年

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访问,对吗?

我的回答使您半途而废。如图所示启用远程桌面后,然后与远程Mac连接以通过System Prefs更改用户的ssh访问。

要连接到远程Mac,请转到Finder,然后Connect to Server…在“转到”菜单下选择。输入您计算机的服务器地址:

vnc://x.x.x.x

其中xxxx是远程计算机的IP地址或URI。由于您与ssh连接,因此我想您已经知道这一点。

现在,您可以使用远程桌面导航到“系统偏好设置”>“帐户”,然后单击该框以允许其他帐户登录到计算机…


我是否需要在远程Mac上安装Apple Remote Desktop?第一条命令后该怎么办?
安德烈(Andrei)2010年

1
系统中已经安装了远程桌面。我将针对远程桌面说明编辑答案。哎呀。我可能误解了您的问题……
ghoppe 2010年

无论如何,假设我正在使用另一台Mac访问远程Mac,那么在执行第一条命令后我需要做什么?
安德烈(Andrei)2010年

2
编辑了我的答案。可能有一种方法可以通过命令行启用ssh访问,因此您不必通过远程桌面进行ssh访问,但是此方法也应该起作用。
ghoppe

第一个命令可疑-更改其他帐户,不仅是我的帐户。可以以不影响其他帐户的方式对其进行修改吗?
安德烈(Andrei)2010年

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.