Habilite SSH en una Mac en modo de usuario único

10

Tengo un iMac al que solo puedo acceder en modo de usuario único, debido a daños graves en el hardware. Le conecté otra computadora con un cable Ethernet. Me gustaría iniciar sesión de forma remota en el iMac a través de SSH. El iMac ejecuta OS X 10.6.4.

Encontré respuestas similares, pero lo que intenté siempre falló.

Lo intenté systemsetup -setremotelogin ony devuelve el siguiente mensaje de error:

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

Mientras launchctl load -w /System/Library/LaunchDaemons/ssh.plistda:

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

¿Qué tengo que hacer?

Ralphtor
fuente
Can't assign requested addressme parece que no tiene ningún tipo de conexión de red. Creo que en el modo de usuario único, debería usar ifconfigo ifupactivar la conexión en red.
Blacklight Shining
@BlacklightShining gracias! Tengo poca experiencia con estos comandos, supongo que con una Mac sería más apropiado usar networksetupo ipconfig, sin embargo. ¿Tiene una idea sobre qué comandos debo dar para que otra computadora se conecte al iMac a través de un solo cable Ethernet? ¿O, como alternativa, conectar el iMac a una red wi-fi protegida con WPA2?
Ralphtor
No estoy seguro de mí mismo. Por man $program_namecierto, puede obtener la página del manual para casi cualquier programa . Echaré un vistazo y veré si puedo encontrar algo para que pruebes ...
Blacklight Shining

Respuestas:

8

Parece que necesita cargar algunas listas más:

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

Luego haz lo que intentaste antes:

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

Después de eso, creo que simplemente puede enchufar el cable Ethernet en ambas computadoras para crear una red ad-hoc. ifconfig en0 | grep ineten la máquina de destino debería obtener su dirección IP, y ya está todo listo. :)

Blacklight Shining
fuente
Gracias por tu consejo, los primeros comandos fueron buenos. Por desgracia para el último comando del equipo respondió con: DNSServiceRegister("ssh"): -65563, DNSServiceRegister("sftp-ssh"): -65563, con estos dos mensajes repite dos veces. Entonces no puedo conectarme con ssh. Recuerdo vagamente haber cambiado el puerto para las conexiones ssh entrantes, por lo que probablemente sea mi culpa, pero agradecería cualquier ayuda
Ralphtor
Debo aclarar: launchctl load -w /System/Library/LaunchDaemons/ssh.plistme da el error que mencioné en el comentario anterior, mientras systemsetup -setremotelogin onsetInetDServiceEnabled failed for ssh because authorizationRef is NULL!
sigo
¿Recuerdas cómo cambiaste el puerto? ¿Podrías cambiarlo de nuevo? Puede que eso no haga nada, pero vale la pena intentarlo ...
Blacklight Shining
Leí los archivos de configuración, parece que el puerto está configurado correctamente en 21. Probablemente este no fue el problema porque seguí las instrucciones para otra Mac y ssh dio los mismos errores. Para ser sincero, la Mac que probé era una Mac mini con Lion y se quejó de que com.apple.DirectoryServices.plistya no existe (como se eliminó en Lion), pero eso no debería ser un gran problema porque ssh me dio exactamente el mismo error que en el iMac
Ralphtor
3

Tres soluciones que podrías considerar. Primero, intente el modo de disco de destino. Si el modo de usuario único funciona, el modo de disco de destino también debería funcionar.

Una vez que se inicia en el modo de disco de destino, conéctelo al otro sistema que tenga (usando firewire) y dígale al segundo sistema que arranque externamente (mantenga presionada la opción al arrancar). Una vez que el sistema operativo en el sistema dañado se inicie utilizando el hardware del sistema local, abra Preferencias del sistema y haga clic en "Compartir" Seleccione la casilla de verificación junto a "Inicio de sesión remoto" para habilitarlo.

Apague y reinicie, y debería tener SSH en funcionamiento.

Una segunda opción es extraer el disco duro del sistema dañado y arrancarlo desde el exterior (en un gabinete externo) o colocarlo dentro de su sistema funcional y arrancar desde allí.

Si ninguno de esos funciona, pero está ejecutando un solo usuario, considere

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

Esto activará el uso compartido de la pantalla, úselo para acceder a las Preferencias del sistema en la máquina remota, realice los cambios (active SSH) y estará operativo.

Everett
fuente
0

¿Por qué no iniciar sshd directamente? Una vez que la red esté activa, /usr/sbin/sshd -p 4212se abrirá un servidor ssh en el puerto 4212.

cdelacroix
fuente
Gracias por tu respuesta. Ejecuté el comando (por curiosidad me gustaría preguntar por qué era necesario escribir la ruta completa /usr/sbin/). Si ejecuto topel iMac, veo un proceso llamado sshd, por lo que debería haber funcionado. Sin embargo, cuando me conecto con una computadora con un cable Ethernet, busco la IP del iMac ifconfigy la ejecuto ssh 192.168.0.3 -p 4212en la otra computadora que dicessh: connect to host 192.168.0.3 port 4212: Operation timed out
Ralphtor
También debo mencionar que shutdown -h nowahora no funciona para apagar el iMac. Tuve que apagarlo manualmente
Ralphtor
Tiendo a escribir rutas completas en mis respuestas para evitar sorpresas debido a las variables PATH mal configuradas. Uso ese comando a menudo y funciona para mí, en 10.6 y 10.7, aunque no tengo que admitirlo en modo de usuario único. ¿Estás conectando en ssh como root?
cdelacroix
¿Cómo me conecto como root? Lo intenté ssh [email protected] -p 4212e incluso lo intenté con los nombres de usuario de otras cuentas que están configuradas en el iMac y siempre se agota el tiempo de espera. Si uso otro puerto, en lugar de 4212 se queja "Conexión rechazada", por lo que algo debería estar funcionando, porque parece responder al puerto correcto. Sin embargo, todavía no puedo conectarme
Ralphtor
¿Es posible que el servidor no pueda generar un shell? Puede intentar ssh -vvv [email protected] -p 4212ver (realmente) resultados detallados desde el lado del cliente, o incluso desde el lado del servidor poner ssh en modo de depuración para ver qué está sucediendo (con sshd -d -p 4212).
cdelacroix