เปิดใช้งาน SSH บน Mac ในโหมดผู้ใช้คนเดียว


10

ฉันมี iMac ที่ฉันสามารถเข้าถึงได้ในโหมดผู้ใช้คนเดียวเท่านั้นเนื่องจากความเสียหายของฮาร์ดแวร์อย่างรุนแรง ฉันเชื่อมต่อกับคอมพิวเตอร์เครื่องอื่นด้วยสายเคเบิลอีเธอร์เน็ต ฉันต้องการลงชื่อเข้าใช้ iMac ผ่าน SSH จากระยะไกล iMac กำลังเรียกใช้ OS X 10.6.4

ฉันเจอคำตอบที่คล้ายกัน แต่สิ่งที่ฉันพยายามทำล้มเหลวเสมอ

ฉันลองsystemsetup -setremotelogin onแล้วมันจะส่งคืนข้อความแสดงข้อผิดพลาดต่อไปนี้:

systemsetup[63:903] setInetDServiceEnabled failed for ssh because authorizationRef is NULL!

ในขณะที่launchctl load -w /System/Library/LaunchDaemons/ssh.plistให้:

DNSServiceRegister("ssh"): -65563
DNSServiceRegister("sftp-ssh"): -65563
bind(): Can't assign requested address
launch_msg(): Socket is not connected
launchctl: CFURLWriteDataAndPropertiesToResource(/var/db/launchd.db/com.apple.launchd/overrides.plist) failed: -10

ฉันควรทำอย่างไรดี?


Can't assign requested addressฟังดูเหมือนว่าฉันจะไม่มีการเชื่อมต่อเครือข่ายใด ๆ ฉันคิดว่าในโหมดผู้ใช้คนเดียวคุณต้องใช้ifconfigหรือifupเปิดใช้งานเครือข่าย
แบล็กไลท์ส่องแสง

@ BlacklightShining ขอบคุณ! ฉันมีประสบการณ์น้อยกับคำสั่งเหล่านี้ฉันเดาว่าด้วย Mac มันจะเหมาะสมกว่าที่จะใช้networksetupหรือipconfigอย่างไรก็ตาม คุณมีความคิดเกี่ยวกับคำสั่งอะไรที่ฉันควรให้เพื่อให้คอมพิวเตอร์เครื่องอื่นเชื่อมต่อกับ iMac ผ่านสายอีเธอร์เน็ตสายเดียว? หรืออีกวิธีหนึ่งในการเชื่อมต่อ iMac กับเครือข่าย Wi-Fi ที่ป้องกันด้วย WPA2
Ralphtor

ฉันไม่แน่ใจว่าตัวเอง คุณจะได้รับหน้าคู่มือเกือบโปรแกรมใด ๆ ด้วยman $program_nameโดยวิธีการ ฉันจะดูและดูว่าฉันสามารถหาอะไรมาให้คุณลองได้ไหม
Blacklight Shining

คำตอบ:


8

ดูเหมือนว่าคุณจะต้องโหลด plists เพิ่มเติม:

launchctl load /System/Library/LaunchDaemons/com.apple.kextd.plist
launchctl load /System/Library/LaunchDaemons/com.apple.notifyd.plist
launchctl load /System/Library/LaunchDaemons/com.apple.configd.plist
launchctl load /System/Library/LaunchDaemon/com.apple.DirectoryServices.plist

จากนั้นทำสิ่งที่คุณลองมาก่อน:

launchctl load -w /System/Library/LaunchDaemons/ssh.plist
systemsetup -setremotelogin on

หลังจากนั้นฉันคิดว่าคุณสามารถต่อสาย Ethernet เข้ากับคอมพิวเตอร์ทั้งสองเครื่องเพื่อสร้างเครือข่ายเฉพาะกิจ ifconfig en0 | grep inetบนเครื่องเป้าหมายคุณจะได้รับที่อยู่ IP ของคุณจากนั้นคุณก็พร้อมแล้ว :)


ขอบคุณสำหรับคำแนะนำของคุณคำสั่งแรกนั้นดี แต่น่าเสียดายที่คำสั่งสุดท้ายคอมพิวเตอร์ตอบ: DNSServiceRegister("ssh"): -65563, DNSServiceRegister("sftp-ssh"): -65563, กับทั้งสองข้อความซ้ำกันสองครั้ง ดังนั้นฉันจึงไม่สามารถเชื่อมต่อกับ ssh ได้ ผมจำได้ราง ๆ ที่จะมีการเปลี่ยนแปลงพอร์ตสำหรับเชื่อมต่อเข้า SSH ดังนั้นจึงน่าจะเป็นความผิดของฉัน แต่ฉันอยากจะขอบคุณความช่วยเหลือใด ๆ
Ralphtor

ฉันต้องชี้แจง: launchctl load -w /System/Library/LaunchDaemons/ssh.plistให้ฉันข้อผิดพลาดที่ฉันกล่าวถึงในความคิดเห็นก่อนหน้าในขณะที่systemsetup -setremotelogin onให้setInetDServiceEnabled failed for ssh because authorizationRef is NULL!
Ralphtor

คุณจำได้ว่าคุณเปลี่ยนพอร์ตอย่างไร คุณสามารถเปลี่ยนมันกลับคืนได้ไหม? อาจไม่ทำอะไรเลย แต่ควรลอง ...
Blacklight Shining

ฉันอ่านไฟล์การกำหนดค่าดูเหมือนว่าพอร์ตถูกตั้งค่าอย่างถูกต้องเป็น 21 อาจเป็นเพราะนี่ไม่ใช่ปัญหาเพราะฉันทำตามคำแนะนำสำหรับ Mac เครื่องอื่นและ ssh ให้ข้อผิดพลาดเดียวกัน เพื่อความซื่อสัตย์ของ Mac ที่ฉันทดสอบนั้นเป็น Mac mini ที่มี Lion และมันบ่นว่าcom.apple.DirectoryServices.plistไม่มีอยู่อีกต่อไป (เนื่องจากมันถูกเอาออกไปใน Lion) แต่นั่นไม่ควรเป็นปัญหาใหญ่เพราะ ssh ให้ข้อผิดพลาดเหมือนกับใน iMac
Ralphtor

3

แนวทางสามข้อที่คุณควรพิจารณา ขั้นแรกลองใช้โหมดดิสก์เป้าหมาย หากโหมดผู้ใช้คนเดียวทำงานได้โหมดดิสก์เป้าหมายควรทำงานเช่นกัน

เมื่อเริ่มต้นในโหมดดิสก์เป้าหมายให้เสียบเข้ากับระบบอื่นที่คุณมี (ใช้ firewire) และบอกให้ระบบที่สองบูตจากภายนอก (กดตัวเลือกค้างไว้ตอนบู๊ต) เมื่อระบบปฏิบัติการในบูทระบบที่เสียหายโดยใช้ฮาร์ดแวร์ภายในระบบให้เปิดการตั้งค่าระบบแล้วคลิกที่“ การแชร์” เลือกช่องทำเครื่องหมายถัดจาก“ การล็อกอินระยะไกล” เพื่อเปิดใช้งาน

ปิดและรีสตาร์ทและคุณควรมี SSH และทำงาน

ตัวเลือกที่สองคือการลบฮาร์ดไดรฟ์ออกจากระบบที่เสียหายและบูตจากภายนอก (ในกล่องหุ้มภายนอก) หรือวางไว้ในระบบการทำงานและบูตจากที่นั่น

หากไม่ใช่งานเหล่านั้น แต่คุณกำลังเรียกใช้ผู้ใช้คนเดียวให้พิจารณา

cd /Library/Preferences
echo -n enabled > com.apple.ScreenSharing.launchd

สิ่งนี้จะเปิดการแชร์หน้าจอใช้เพื่อเข้าถึงการตั้งค่าระบบบนเครื่องระยะไกลทำการเปลี่ยนแปลง (เปิด SSH) และคุณใช้งานได้


0

ทำไมไม่เปิดตัว sshd โดยตรง เมื่อเครือข่ายหมด/usr/sbin/sshd -p 4212จะเปิดเซิร์ฟเวอร์ ssh ที่พอร์ต 4212


ขอบคุณสำหรับคำตอบ. ฉันดำเนินการคำสั่ง (จากความอยากรู้อยากเห็นฉันต้องการถามว่าทำไมจึงจำเป็นต้องเขียนเส้นทางที่สมบูรณ์/usr/sbin/) หากฉันใช้topiMac ฉันเห็นกระบวนการที่เรียกว่าsshdดังนั้นจึงควรใช้งานได้ อย่างไรก็ตามเมื่อฉันเชื่อมต่อกับคอมพิวเตอร์ด้วยสายเคเบิลอีเธอร์เน็ตมองหา IP ของ iMac ด้วยifconfigและทำงานssh 192.168.0.3 -p 4212บนคอมพิวเตอร์เครื่องอื่น ๆ ที่มันบอกว่าssh: connect to host 192.168.0.3 port 4212: Operation timed out
Ralphtor

ฉันควรจะพูดถึงว่าshutdown -h nowตอนนี้ไม่ได้ทำงานเพื่อปิด iMac ฉันต้องปิดเครื่องเอง
Ralphtor

ฉันมักจะเขียนเส้นทางแบบเต็มในคำตอบของฉันเพื่อหลีกเลี่ยงความประหลาดใจเนื่องจากตัวแปร PATH ที่กำหนดค่าไม่ดี ฉันใช้คำสั่งนั้นบ่อยๆและใช้ได้กับฉันในวันที่ 10.6 และ 10.7 แม้ว่าจะไม่ได้อยู่ในโหมดผู้ใช้คนเดียวฉันต้องยอมรับ คุณกำลังเชื่อมต่อด้วย ssh ในฐานะรูทหรือไม่?
cdelacroix

ฉันจะเชื่อมต่อเป็นรูทได้อย่างไร ฉันลองssh root@192.168.0.3 -p 4212แล้วและฉันก็ลองด้วยชื่อผู้ใช้ของบัญชีอื่น ๆ ที่ตั้งค่าใน iMac และมันก็หมดเวลา ถ้าฉันใช้พอร์ตอื่นแทนที่จะเป็น 4212 จะบ่นว่า "การเชื่อมต่อถูกปฏิเสธ" ดังนั้นสิ่งที่ควรใช้งานได้เพราะมันดูเหมือนจะตอบพอร์ตที่ถูกต้อง อย่างไรก็ตามฉันยังไม่สามารถเชื่อมต่อได้
Ralphtor

เซิร์ฟเวอร์อาจไม่สามารถวางไข่เชลล์ได้หรือไม่ คุณสามารถลองssh -vvv root@192.168.0.3 -p 4212ดู (จริง ๆ ) เอาท์พุท verbose จากฝั่งไคลเอ็นต์หรือแม้แต่ที่ฝั่งเซิร์ฟเวอร์ให้ใส่ ssh ในโหมดดีบักเพื่อดูว่าเกิดอะไรขึ้น (ด้วยsshd -d -p 4212)
cdelacroix
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.