playonmac - No se puede ejecutar "ssh-X" en MacOS Sierra
xquartz r (9)
Acabo de actualizar mi macbook de El Capitán a Sierra. Simplemente reinstalar Xquartz ha hecho el truco por mí, usando ssh -X [servidor linux]
Acabo de actualizar a MacOS Sierra y me di cuenta de que parece que ya no puedo ejecutar el comando "ssh -X" en la Terminal. Solía lanzar ventanas de xterm, pero ahora es como si ya no hubiera puesto la opción -X. Estaba funcionando absolutamente bien justo antes de actualizar. Aparte de ir de OS X Yosemite a MacOS Sierra, no cambié nada más en la configuración.
EDITAR:
Como se sugirió, esto es lo que encontré en los registros de depuración que podrían estar causando este problema.
debug1: No xauth program.
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Estoy teniendo los mismos problemas con el reenvío X11 con la opción -X
después de actualizar a Mac OS X Sierra.
Eche un vistazo a la opción ssh -Y
(reenvío X11 de confianza). Mientras uso ssh -Y <host>
cosas funcionan para mí.
Mi solución a esto fue la siguiente.
(1) Inicia xquartz
antes de probar el ssh -X
. En las opciones de xquartz, simplemente habilité "Abrir al iniciar sesión", y luego siempre se ejecuta en segundo plano.
(2) Vaya al menú Preferencias de xquartz
y, en la ventana Seguridad, haga clic en el cuadro que dice "Permitir conexiones de clientes".
Después de hacer estas cosas, todo funciona bien.
No necesitaba volver a instalar XQuartz, pero, según la respuesta de Matt Widjaja, se me ocurrió un refinamiento.
-
sudo vi /etc/ssh/ssh_config
(Esta es la configuración del cliente ssh, no sshd_config)- En la entrada
Host *
agregue (o agregue donde corresponda por host)-
XAuthLocation /usr/X11/bin/xauth
(La ubicación de xauth cambió en Sierra) -
ServerAliveInterval 60
(hace ping al servidor cada 60 segundos para mantener activa su conexión ssh) -
ForwardX11Timeout 596h
(permite conexiones X11 no confiables más allá del valor predeterminado de 20 minutos)
-
- En la entrada
No es necesario reiniciar ssh, excepto, por supuesto, las conexiones de clientes ssh existentes.
Parece que -Y (confianza X11) sería preferible a no confiable. Si cambia a la opción de confianza, es probable que la línea ForwardX11Timeout se pueda eliminar.
La línea ServerAliveInterval también es una preferencia opcional.
También puede ser posible realizar estos cambios en ~/.ssh/config
(el archivo de configuración del usuario) pero los permisos deben ser correctos.
EDITAR: He eliminado ForwardX11 y ForwardX11 Trust. No son necesarios y ForwardX11 es menos seguro y causa problemas para git (u otras herramientas que usan ssh).
Noté que macOS Sierra restableció mi configuración de X11 para que deshabilitara mi programa xAuth. Para volver a habilitar xAuth en macOS Sierra:
- Reinstale X11 / xQuartz para restablecer, presumiblemente, cualquier cambio realizado por macOS Sierra. También hice los siguientes cambios a continuación, aunque parece que esto podría ser suficiente.
- Cargar un terminal
-
sudo <text editor of your choice> /etc/ssh/sshd_config
- En ese archivo, elimine el comentario de las siguientes líneas y configúrelo en estos valores:
-
X11Forwarding yes
-
X11DisplayOffset 10
- [Actualización del 10/07/2017] Al reinstalar X11 / XQuartz, sobre todo, debería agregar una:
XAuthLocation <path_to_your_xauth>
donde estaba el mío en / opt / X11 / bin / xauth. Este fue probablemente el paso de oro que explicó por qué la reinstalación funcionó.
-
- Reinicie ssh a través del terminal. Hice esto corriendo:
-
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
-
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
-
Pasé todo el día buscando una solución solo para darme cuenta de que la Sierra reciente no se entrega con XQuartz instalado https://support.apple.com/en-gb/HT201341 . Al instalar ( https://www.xquartz.org/ ) todo funciona.
Si Quartz está instalado, todo lo que se necesita es agregar la línea "X11Trusted yes" debajo de "Host *" en el archivo / etc / ssh / ssh_config.
Simplemente agregando una línea XAuthLocation /usr/X11/bin/xauth
a /etc/ssh/ssh_config
funciona en mi Mac, ejecutando MacOS Sierra, a ssh en un host Linux y puede ejecutar programas de X Windows de forma remota y mostrarlos debajo XQuartz en mi Mac.
reiniciar XQuartz funcionó para mí.