Aktivieren Sie SSH auf einem Mac im Einzelbenutzermodus

10

Ich habe einen iMac, auf den ich aufgrund schwerwiegender Hardwareschäden nur im Einzelbenutzermodus zugreifen kann. Ich habe einen anderen Computer mit einem Ethernet-Kabel daran angeschlossen. Ich möchte mich über SSH remote beim iMac anmelden. Auf dem iMac wird OS X 10.6.4 ausgeführt.

Ich bin auf ähnliche Antworten gestoßen, aber was ich versucht habe, ist immer gescheitert.

Ich habe es versucht systemsetup -setremotelogin onund es wird die folgende Fehlermeldung zurückgegeben:

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

Während launchctl load -w /System/Library/LaunchDaemons/ssh.plistgibt:

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

Was sollte ich tun?

Ralphtor
quelle
Can't assign requested addressklingt für mich so, als hätte es keine Netzwerkverbindung. Ich denke, im Einzelbenutzermodus müssten Sie das Netzwerk verwenden ifconfigoder ifupaktivieren.
Blacklight Shining
@ BlacklightShining danke! Ich habe wenig Erfahrung mit diesen Befehlen, ich denke, dass es mit einem Mac besser wäre, networksetupoder zu verwenden ipconfig. Haben Sie eine Idee, welche Befehle ich geben soll, damit ein anderer Computer über ein einziges Ethernet-Kabel eine Verbindung zum iMac herstellen kann? Oder alternativ, um den iMac mit einem mit WPA2 geschützten Wi-Fi-Netzwerk zu verbinden?
Ralphtor
Ich bin mir nicht sicher. Sie können die Handbuchseite man $program_nameübrigens für fast jedes Programm mit bekommen . Ich werde einen Blick darauf werfen und sehen, ob ich etwas finden kann, das Sie ausprobieren können ...
Blacklight Shining

Antworten:

8

Sieht so aus, als müssten Sie noch einige Plisten laden:

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

Dann machen Sie, was Sie zuvor versucht haben:

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

Danach können Sie das Ethernet-Kabel einfach an beide Computer anschließen, um ein Ad-hoc-Netzwerk zu erstellen. ifconfig en0 | grep inetAuf dem Zielcomputer sollten Sie die IP-Adresse erhalten, und dann sind Sie fertig. :) :)

Schwarzlicht scheint
quelle
Vielen Dank für Ihren Rat, die ersten Befehle waren gut. Leider mit dem letzten Befehl mit dem Computer geantwortet: DNSServiceRegister("ssh"): -65563, DNSServiceRegister("sftp-ssh"): -65563, mit diesen beiden Meldungen zweimal wiederholt. Ich kann mich also nicht mit ssh verbinden. Ich erinnere mich vage, dass ich den Port für die eingehenden SSH-Verbindungen geändert habe, daher ist es wahrscheinlich meine Schuld, aber ich würde mich über jede Hilfe
freuen
Ich muss klarstellen: launchctl load -w /System/Library/LaunchDaemons/ssh.plistgibt mir den Fehler, den ich im vorherigen Kommentar erwähnt habe, während ich weiter systemsetup -setremotelogin ongebesetInetDServiceEnabled failed for ssh because authorizationRef is NULL!
Ralphtor
Erinnerst du dich, wie du den Port geändert hast? Könnten Sie es vielleicht wieder ändern? Das macht vielleicht nichts, aber es ist einen Versuch wert ...
Blacklight Shining
Ich habe die Konfigurationsdateien gelesen, es scheint, dass der Port korrekt auf 21 eingestellt ist. Wahrscheinlich war dies nicht das Problem, da ich die Anweisungen für einen anderen Mac befolgt habe und ssh die gleichen Fehler gab. Um ehrlich zu sein, war der Mac, den ich getestet habe, ein Mac mini mit Lion und er hat sich beschwert, dass er com.apple.DirectoryServices.plistnicht mehr existiert (da er in Lion entfernt wurde), aber das sollte kein großes Problem sein, da ssh mir genau den gleichen Fehler wie im gegeben hat iMac.
Ralphtor
3

Drei Lösungen, die Sie in Betracht ziehen könnten. Versuchen Sie zunächst den Zielfestplattenmodus. Wenn der Einzelbenutzermodus funktioniert, sollte auch der Zielfestplattenmodus funktionieren.

Sobald es im Zielfestplattenmodus gestartet wurde, schließen Sie es an das andere System an, das Sie haben (mithilfe von Firewire), und weisen Sie das zweite System an, extern zu starten (halten Sie die Option beim Booten gedrückt). Sobald das Betriebssystem im beschädigten System mit der lokalen Systemhardware gestartet wurde, öffnen Sie die Systemeinstellungen und klicken Sie auf "Freigabe". Aktivieren Sie das Kontrollkästchen neben "Remote-Anmeldung", um es zu aktivieren.

Fahren Sie das System herunter und starten Sie es neu. Sie sollten SSH zum Laufen bringen.

Eine zweite Möglichkeit besteht darin, die Festplatte aus dem beschädigten System zu entfernen und extern (in einem externen Gehäuse) zu booten oder sie in Ihr Funktionssystem zu legen und von dort aus zu booten.

Wenn beides nicht funktioniert, Sie jedoch einen einzelnen Benutzer ausführen, ziehen Sie dies in Betracht

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

Dadurch wird die Bildschirmfreigabe aktiviert. Verwenden Sie diese Option, um auf die Systemeinstellungen auf dem Remotecomputer zuzugreifen, die Änderungen vorzunehmen (SSH aktivieren) und Sie sind funktionsfähig.

Everett
quelle
0

Warum nicht sshd direkt starten? Sobald das Netzwerk aktiv ist, /usr/sbin/sshd -p 4212wird ein SSH-Server an Port 4212 geöffnet.

cdelacroix
quelle
Danke für deine Antwort. Ich habe den Befehl ausgeführt (aus Neugier möchte ich fragen, warum es notwendig war, den vollständigen Pfad zu schreiben /usr/sbin/). Wenn ich topauf dem iMac laufe, sehe ich einen Prozess namens sshd, also hätte es funktionieren sollen. Wenn ich mich jedoch mit einem Computer mit einem Ethernet-Kabel verbinde, suchen Sie nach der IP des iMac mit ifconfigund führen Sie sie ssh 192.168.0.3 -p 4212auf dem anderen Computer aus, auf dem stehtssh: connect to host 192.168.0.3 port 4212: Operation timed out
Ralphtor
Ich sollte auch erwähnen, dass shutdown -h nowjetzt nicht funktioniert, um den iMac herunterzufahren. Ich musste es manuell herunterfahren
Ralphtor
Ich neige dazu, vollständige Pfade in meine Antworten zu schreiben, um Überraschungen aufgrund schlecht konfigurierter PATH-Variablen zu vermeiden. Ich benutze diesen Befehl oft und er funktioniert für mich unter 10.6 und 10.7, obwohl ich zugeben muss, dass er sich nicht im Einzelbenutzermodus befindet. Verbinden Sie sich in ssh als root?
Cdelacroix
Wie verbinde ich mich als root? Ich habe es versucht ssh [email protected] -p 4212und ich habe es sogar mit den Benutzernamen anderer Konten versucht, die im iMac eingerichtet sind, und es tritt immer eine Zeitüberschreitung auf. Wenn ich anstelle von 4212 einen anderen Port verwende, wird "Verbindung abgelehnt" beanstandet, sodass etwas funktionieren sollte, da es auf den richtigen Port zu antworten scheint. Allerdings kann ich immer noch keine Verbindung herstellen
Ralphtor
Der Server kann möglicherweise keine Shell erzeugen? Sie können versuchen ssh -vvv [email protected] -p 4212, (wirklich) ausführliche Ausgaben von der Client-Seite zu sehen, oder sogar auf der Serverseite ssh in den Debug-Modus versetzen, um zu sehen, was (mit sshd -d -p 4212) passiert .
cdelacroix