วิธีเปิดใช้งานการเข้าถึงระยะไกลสำหรับบัญชีอื่นบน 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 ด้วยชื่อผู้ใช้แบบย่อเช่นกัน)

(บิตสุดท้ายนั้นต้องขอบคุณReed Stoner ใน 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


1
@Andrei: เพิ่มแฟล็ก -users หลังจาก -configure ด้วยรายชื่อผู้ใช้ ฉันได้เพิ่มเข้าไปในคำตอบของฉันแล้ว
Chealion

4
ดูเหมือนว่าโครงสร้างของ access_ssh เปลี่ยนแปลงไปตามกาลเวลา คีย์ 'ผู้ใช้' ในคำสั่ง dscl แรกควรเป็น GroupMembership คำสั่ง dscl ที่สองต่อท้าย UID ไปยัง groupmembers ยังคงใช้ได้
Erik

2
Erik ถูกต้อง - @Calalion คุณสามารถอัปเดตคำตอบของคุณด้วยการเปลี่ยนคำสั่งเป็น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

เปิดใช้งาน Remote Desktop ผ่านทางบรรทัดคำสั่ง:

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 ฉันคิดว่าคุณรู้เรื่องนี้แล้ว

ตอนนี้คุณสามารถใช้ Remote Desktop เพื่อนำทางไปยัง System Prefs> Accounts และคลิกที่ช่องเพื่อให้บัญชีอื่นเข้าสู่ระบบคอมพิวเตอร์ ...


ฉันจำเป็นต้องติดตั้ง Apple Remote Desktop บน Mac ระยะไกลหรือไม่ ฉันควรทำอย่างไรหลังจากคำสั่งแรก?
Andrei

1
เดสก์ท็อประยะไกลได้รับการติดตั้งในระบบแล้ว ฉันจะแก้ไขคำตอบสำหรับคำแนะนำของ Remote Desktop อุ่ย ฉันอาจจะเข้าใจผิดคำถามของคุณ ...
ghoppe

อย่างไรก็ตามฉันต้องทำอะไรหลังจากสั่งคำสั่งแรกโดยสมมติว่าฉันใช้ Mac เครื่องอื่นเพื่อเข้าถึงรีโมต?
Andrei

2
แก้ไขคำตอบของฉัน อาจมีวิธีการเปิดใช้งานการเข้าถึง ssh ผ่านทางบรรทัดคำสั่งดังนั้นคุณไม่จำเป็นต้องทำผ่าน Remote Desktop แต่วิธีนี้ควรใช้งานเช่นกัน
ghoppe

คำสั่งแรกทำสิ่งที่น่าสงสัย - มันเปลี่ยนบัญชีอื่น ๆ ไม่ใช่ของฉัน สามารถแก้ไขได้ในลักษณะที่ว่าบัญชีอื่นไม่ได้รับผลกระทบหรือไม่?
Andrei

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.