Kích hoạt SSH trên máy Mac ở chế độ người dùng


10

Tôi có một iMac mà tôi chỉ có thể truy cập trong chế độ một người dùng, vì bị hỏng phần cứng nghiêm trọng. Tôi gắn vào nó một máy tính khác bằng cáp Ethernet. Tôi muốn đăng nhập từ xa vào iMac thông qua SSH. IMac đang chạy OS X 10.6.4.

Tôi đã đi qua những câu trả lời tương tự nhưng những gì tôi đã cố gắng luôn thất bại.

Tôi đã thử systemsetup -setremotelogin onvà nó trả về thông báo lỗi sau:

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

Trong khi launchctl load -w /System/Library/LaunchDaemons/ssh.plistcho:

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

Tôi nên làm gì?


Can't assign requested addressĐối với tôi có vẻ như nó không có bất kỳ loại kết nối mạng nào. Tôi nghĩ ở chế độ một người dùng, bạn phải sử dụng ifconfighoặc ifupbật bật mạng.
Blacklight Shining

@BlacklightShining cảm ơn! Tôi có ít kinh nghiệm với các lệnh này, tôi đoán rằng với máy Mac, nó sẽ phù hợp hơn để sử dụng networksetuphoặc ipconfig, tuy nhiên. Bạn có biết tôi nên đưa ra những lệnh nào để một máy tính khác kết nối với iMac thông qua một cáp Ethernet không? Hoặc, thay vào đó, để kết nối iMac với mạng wi-fi được bảo vệ bằng WPA2?
Ralphtor

Tôi không chắc chắn bản thân mình. Nhân tiện, bạn có thể lấy trang hướng dẫn cho hầu hết mọi chương trình man $program_name. Tôi sẽ xem và xem liệu tôi có thể nghĩ ra thứ gì đó cho bạn để thử hay không
Blacklight Shining

Câu trả lời:


8

Có vẻ như bạn cần tải thêm một số bảng:

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

Sau đó, làm những gì bạn đã cố gắng trước đây:

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

Sau đó, tôi nghĩ rằng bạn chỉ cần cắm cáp Ethernet vào cả hai máy tính để tạo một mạng ad-hoc. ifconfig en0 | grep inettrên máy đích sẽ lấy cho bạn địa chỉ IP của nó và sau đó bạn đã thiết lập xong. :)


Cảm ơn lời khuyên của bạn, các lệnh đầu tiên là tốt. Thật không may cho lệnh cuối cùng máy tính đã trả lời với: DNSServiceRegister("ssh"): -65563, DNSServiceRegister("sftp-ssh"): -65563, với hai thông điệp của những lặp lại hai lần. Vì vậy, tôi không thể kết nối với ssh. Tôi nhớ một cách mơ hồ đã thay đổi cổng cho các kết nối ssh đến, vì vậy đây có thể là lỗi của tôi, nhưng tôi sẽ đánh giá cao bất kỳ trợ giúp nào
Ralphtor

Tôi phải làm rõ: launchctl load -w /System/Library/LaunchDaemons/ssh.plistđưa ra lỗi tôi đã đề cập trong bình luận trước đó, trong khi systemsetup -setremotelogin ontiếp tục đưa rasetInetDServiceEnabled failed for ssh because authorizationRef is NULL!
Ralphtor

Bạn có nhớ cách bạn thay đổi cổng? Bạn có thể thay đổi nó trở lại? Điều đó có thể không làm được gì, nhưng nó đáng để thử, hãy thử
Blacklight Shining

Tôi đọc các tập tin cấu hình, có vẻ như cổng được đặt chính xác thành 21. Có lẽ đây không phải là vấn đề vì tôi đã làm theo hướng dẫn cho một máy Mac khác và ssh cũng mắc lỗi tương tự. Thành thật mà nói, Mac tôi đã thử nghiệm là Mac mini với Lion và nó phàn nàn rằng com.apple.DirectoryServices.plistnó không còn tồn tại nữa (vì nó đã bị xóa trong Lion), nhưng đó không phải là một vấn đề lớn vì ssh đã cho tôi lỗi chính xác như trong iMac.
Ralphtor

3

Ba giải pháp bạn có thể xem xét. Đầu tiên, hãy thử chế độ đĩa đích. Nếu chế độ người dùng đơn hoạt động, thì chế độ đĩa đích cũng sẽ hoạt động.

Khi nó được khởi động ở chế độ đĩa đích, hãy cắm nó vào hệ thống khác mà bạn có (sử dụng firewire) và báo cho hệ thống thứ hai khởi động bên ngoài (tùy chọn giữ khi khởi động). Khi hệ điều hành trong hệ thống bị hỏng khởi động bằng phần cứng hệ thống cục bộ, hãy mở Tùy chọn hệ thống và nhấp vào trên Sharing Sharing. Chọn hộp kiểm bên cạnh Đăng nhập từ xa Đăng nhập để kích hoạt nó.

Tắt và khởi động lại, và bạn nên có SSH và chạy.

Tùy chọn thứ hai là loại bỏ ổ cứng khỏi hệ thống bị hỏng và khởi động từ bên ngoài (trong vỏ bọc bên ngoài) hoặc đặt nó bên trong hệ thống chức năng của bạn và khởi động từ đó.

Nếu cả hai đều không hoạt động, nhưng bạn đang chạy một người dùng, hãy xem xét

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

Điều này sẽ bật chia sẻ màn hình, sử dụng để truy cập Tùy chọn hệ thống trên máy từ xa, thực hiện các thay đổi (bật SSH) và bạn đang hoạt động.


0

Tại sao không khởi chạy sshd trực tiếp? Khi mạng đã hoạt động /usr/sbin/sshd -p 4212sẽ mở một máy chủ ssh trên cổng 4212.


Cảm ơn câu trả lời của bạn. Tôi đã thực thi lệnh (vì tò mò tôi muốn hỏi tại sao cần phải viết đường dẫn hoàn chỉnh /usr/sbin/). Nếu tôi chạy toptrên iMac, tôi thấy một quá trình được gọi sshd, vì vậy nó sẽ hoạt động. Tuy nhiên, khi tôi kết nối với máy tính bằng cáp Ethernet, hãy tìm IP của iMac ifconfigvà chạy ssh 192.168.0.3 -p 4212trên máy tính khác có tênssh: connect to host 192.168.0.3 port 4212: Operation timed out
Ralphtor

Tôi cũng nên đề cập rằng shutdown -h nowbây giờ không hoạt động để tắt iMac. Tôi đã phải tắt nó bằng tay
Ralphtor

Tôi có xu hướng viết các đường dẫn đầy đủ trong các câu trả lời của mình để tránh những điều bất ngờ do các biến PATH được cấu hình kém. Tôi sử dụng lệnh đó thường xuyên và nó hoạt động với tôi, vào ngày 10.6 và 10.7, mặc dù không ở chế độ người dùng đơn lẻ tôi phải thừa nhận. Bạn đang kết nối trong ssh là root?
cdelacroix

Làm thế nào để tôi kết nối như root? Tôi đã thử ssh root@192.168.0.3 -p 4212và thậm chí tôi đã thử với tên người dùng của các tài khoản khác được thiết lập trong iMac và nó luôn hết thời gian. Nếu tôi sử dụng một cổng khác, thay vì 4212, nó sẽ phàn nàn "Kết nối bị từ chối", do đó, một cái gì đó sẽ hoạt động, bởi vì nó xuất hiện để trả lời đúng cổng. Tuy nhiên tôi vẫn không thể kết nối
Ralphtor

Các máy chủ có thể không thể sinh ra một vỏ? Bạn có thể thử ssh -vvv root@192.168.0.3 -p 4212xem (thực sự) đầu ra dài dòng từ phía máy khách hoặc thậm chí ở phía máy chủ đặt ssh ở chế độ gỡ lỗi để xem điều gì đang xảy ra (với sshd -d -p 4212).
cdelacroix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.