在Mac上以单用户模式启用SSH


10

由于严重的硬件损坏,我有一台只能以单用户模式访问的iMac。我用以太网电缆将另一台计算机连接到它。我想通过SSH远程登录iMac。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在我看来,它没有任何类型的网络连接。我认为在单用户模式下,您必须使用ifconfigifup启用联网功能。
Blacklight Shining 2012年

@BlacklightShining谢谢!我对这些命令的经验很少,我猜想对于Mac,使用networksetup或更合适ipconfig。您是否对应该发出什么命令以便另一台计算机通过一条以太网电缆连接到iMac有所了解?还是将iMac连接到受WPA2保护的Wi-Fi网络?
Ralphtor

我不确定自己。man $program_name顺便说一下,您几乎可以使用任何程序获取手册页。我看一下是否可以提出一些建议供您尝试……
Blacklight闪耀2012年

Answers:


8

看来您需要加载更多的桩头:

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

在那之后,我认为您只需将以太网电缆插入两台计算机即可创建一个临时网络。ifconfig en0 | grep inet在目标计算机上应该获得您的IP地址,然后一切就绪。:)


感谢您的建议,第一个命令很好。不幸的是,计算机对最后一条命令回答:DNSServiceRegister("ssh"): -65563,,DNSServiceRegister("sftp-ssh"): -65563这两个消息重复了两次。所以我不能用ssh连接。我记得模糊地更改了传入ssh连接的端口,所以这可能是我的错,但是我将不胜感激
Ralphtor 2012年

我必须澄清:launchctl load -w /System/Library/LaunchDaemons/ssh.plist给我我在上systemsetup -setremotelogin onsetInetDServiceEnabled failed for ssh because authorizationRef is NULL!
一条

您还记得您如何更改端口吗?你能把它改回来吗?那可能什么也没做,但是值得一试……
Blacklight Shining 2012年

我阅读了配置文件,似乎端口已正确设置为21。可能不是问题所在,因为我遵循了另一台Mac的说明,而ssh给出了相同的错误。老实说,我测试的Mac是配备Lion的Mac mini,它抱怨com.apple.DirectoryServices.plist不存在了(因为它已在Lion中删除),但这不应该是大问题,因为ssh给我的错误与iMac。
Ralphtor 2012年

3

您可以考虑的三种解决方案。首先,尝试目标磁盘模式。如果单用户模式可行,则目标磁盘模式也应可行。

在目标磁盘模式下启动后,将其插入您拥有的另一个系统(使用火线),并告诉第二个系统从外部引导(在引导时按住选项)。一旦受损系统中的OS使用本地系统硬件启动,请打开“系统偏好设置”,然后单击“共享”。选中“远程登录”旁边的复选框以启用它。

关闭并重新启动,您应该已启动并运行SSH。

第二种选择是从损坏的系统中卸下硬盘驱动器,然后从外部(在外部机柜中)引导它,或者将其放入功能系统中并从那里引导。

如果这些都不起作用,但是您正在运行单用户,请考虑

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

这将打开屏幕共享,使用它来访问远程计算机上的“系统偏好设置”,进行更改(打开SSH),您便可以使用了。


0

为什么不直接启动sshd?网络启动后,/usr/sbin/sshd -p 4212将在端口4212上打开ssh服务器。


感谢您的回答。我执行了命令(出于好奇,我想问为什么写完整路径需要它/usr/sbin/)。如果我top在iMac上运行,我会看到一个名为的进程sshd,所以它应该可以正常工作。然而,当我用一条以太网电缆电脑,寻找与iMac电脑的IP连接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 2012年

我倾向于在答案中写完整路径,以避免由于配置错误的PATH变量而引起意外。我经常使用该命令,它对我有效,适用于10.6和10.7,尽管我不得不承认不是单用户模式。您是否以root用户身份在ssh中连接?
cdelacroix 2012年

如何以root用户身份连接?我尝试过ssh root@192.168.0.3 -p 4212,甚至尝试使用iMac中设置的其他帐户的用户名,但总是超时。如果我使用其他端口,而不是4212,它将抱怨“连接被拒绝”,因此应该可以正常工作,因为它似乎可以正确连接端口。但是我仍然无法连接
Ralphtor

服务器可能无法生成shell?您可以尝试ssh -vvv root@192.168.0.3 -p 4212查看(确实)来自客户端的详细输出,甚至可以在服务器端将ssh置于调试模式下以查看正在发生的情况(带有sshd -d -p 4212)。
cdelacroix 2012年
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.