Activer SSH sur un Mac en mode mono-utilisateur

10

J'ai un iMac auquel je ne peux accéder qu'en mode mono-utilisateur, en raison de graves dommages matériels. Je lui ai attaché un autre ordinateur avec un câble Ethernet. Je souhaite me connecter à distance à l'iMac via SSH. L'iMac exécute OS X 10.6.4.

Je suis tombé sur des réponses similaires mais ce que j'ai essayé a toujours échoué.

J'ai essayé systemsetup -setremotelogin onet il renvoie le message d'erreur suivant:

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

Alors launchctl load -w /System/Library/LaunchDaemons/ssh.plistdonne:

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

Que devrais-je faire?

Ralphtor
la source
Can't assign requested addressme semble qu'il n'a pas de connexion réseau. Je pense qu'en mode mono-utilisateur, vous devez utiliser ifconfigou ifupactiver la mise en réseau.
Blacklight Shining
@BlacklightShining merci! J'ai peu d'expérience avec ces commandes, je suppose qu'avec un Mac il serait plus approprié d'utiliser networksetupou ipconfig, cependant. Avez-vous une idée des commandes à donner pour qu'un autre ordinateur se connecte à l'iMac via un seul câble Ethernet? Ou, en alternative, pour connecter l'iMac à un réseau wi-fi protégé par WPA2?
Ralphtor
Je ne suis pas sûr moi-même. Soit dit man $program_nameen passant, vous pouvez obtenir la page de manuel de presque tous les programmes . Je vais jeter un œil et voir si je peux trouver quelque chose à essayer…
Blacklight Shining

Réponses:

8

Il semble que vous ayez besoin de charger plus de 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

Faites ensuite ce que vous avez essayé auparavant:

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

Après cela, je pense que vous pouvez simplement brancher le câble Ethernet sur les deux ordinateurs pour créer un réseau ad-hoc. ifconfig en0 | grep inetsur la machine cible devrait vous obtenir son adresse IP, puis vous êtes prêt. :)

Blacklight Shining
la source
Merci pour vos conseils, les premières commandes étaient bonnes. Malheureusement , la dernière commande l'ordinateur a répondu avec: DNSServiceRegister("ssh"): -65563, DNSServiceRegister("sftp-ssh"): -65563, avec ces deux messages répétés deux fois. Je ne peux donc pas me connecter avec ssh. Je me souviens vaguement d'avoir changé le port pour les connexions ssh entrantes, donc c'est probablement ma faute, mais j'apprécierais toute aide
Ralphtor
Je dois clarifier: launchctl load -w /System/Library/LaunchDaemons/ssh.plistme donne l'erreur que j'ai mentionnée dans le commentaire précédent, tout systemsetup -setremotelogin onen setInetDServiceEnabled failed for ssh because authorizationRef is NULL!
continuant de
Vous rappelez-vous comment vous avez changé le port? Pourriez-vous peut-être le modifier à nouveau? Cela pourrait ne rien faire, mais ça vaut le coup d'essayer…
Blacklight Shining
J'ai lu les fichiers de configuration, il semble que le port soit correctement réglé sur 21. Ce n'était probablement pas le problème car j'ai suivi les instructions pour un autre Mac et ssh a donné les mêmes erreurs. Pour être honnête, le Mac que j'ai testé était un Mac mini avec Lion et il se plaignait qu'il com.apple.DirectoryServices.plistn'existe plus (car il a été supprimé dans Lion), mais cela ne devrait pas être un gros problème car ssh m'a donné exactement la même erreur que dans le iMac.
Ralphtor
3

Trois solutions que vous pourriez envisager. Tout d'abord, essayez le mode disque cible. Si le mode mono-utilisateur fonctionne, le mode disque cible devrait également fonctionner.

Une fois qu'il est démarré en mode disque cible, branchez-le sur l'autre système que vous avez (en utilisant le firewire), et dites au deuxième système de démarrer en externe (maintenez l'option au démarrage). Une fois que le système d'exploitation du système endommagé démarre à l'aide du matériel des systèmes locaux, ouvrez les Préférences Système et cliquez sur «Partage» Cochez la case à côté de «Connexion à distance» pour l'activer.

Arrêtez et redémarrez, et vous devriez avoir SSH opérationnel.

Une deuxième option consiste à retirer le disque dur du système endommagé et à le démarrer à l'extérieur (dans un boîtier externe) ou à le placer à l'intérieur de votre système fonctionnel et à démarrer à partir de là.

Si aucun de ces éléments ne fonctionne, mais que vous utilisez un seul utilisateur, envisagez

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

Cela activera le partage d'écran, utilisez-le pour accéder aux Préférences Système sur la machine distante, effectuez les modifications (activez SSH) et vous êtes fonctionnel.

Everett
la source
0

Pourquoi ne pas lancer directement sshd? Une fois le réseau /usr/sbin/sshd -p 4212ouvert, un serveur ssh sera ouvert sur le port 4212.

cdelacroix
la source
Merci pour votre réponse. J'ai exécuté la commande (par curiosité, je voudrais demander pourquoi il était nécessaire d'écrire le chemin complet /usr/sbin/). Si je cours topsur l'iMac, je vois un processus appelé sshd, cela aurait donc dû fonctionner. Cependant, lorsque je me connecte à un ordinateur avec un câble Ethernet, recherchez l'IP de l'iMac avec ifconfig, et exécutez ssh 192.168.0.3 -p 4212sur l'autre ordinateur, il ditssh: connect to host 192.168.0.3 port 4212: Operation timed out
Ralphtor
Je dois également mentionner que shutdown -h nowmaintenant ne fonctionne pas pour arrêter l'iMac. J'ai dû l'arrêter manuellement
Ralphtor
J'ai tendance à écrire des chemins complets dans mes réponses pour éviter les surprises en raison de variables PATH mal configurées. J'utilise souvent cette commande et elle fonctionne pour moi, sur 10.6 et 10.7, mais je ne dois pas l'admettre en mode mono-utilisateur. Êtes-vous connecté en ssh en tant que root?
cdelacroix
Comment me connecter en tant que root? J'ai essayé ssh [email protected] -p 4212et j'ai même essayé avec les noms d'utilisateur d'autres comptes qui sont configurés dans l'iMac et cela arrive toujours à expiration. Si j'utilise un autre port, au lieu de 4212, il se plaint "Connexion refusée", donc quelque chose devrait fonctionner, car il semble répondre au bon port. Cependant, je ne peux toujours pas me connecter
Ralphtor
Le serveur n'est peut-être pas en mesure de générer un shell? Vous pouvez essayer ssh -vvv [email protected] -p 4212de voir la sortie (vraiment) verbeuse du côté client, ou même du côté serveur mettre ssh en mode débogage pour voir ce qui se passe (avec sshd -d -p 4212).
cdelacroix