Estoy tratando de ingresar a mi servidor remoto dentro del subsistema Linux de Windows 10. Estoy usando MS Windows 10 Home Insider Preview compilación 14366.
Mientras estoy en el símbolo del sistema, escribo:
Unos segundos después de escribir el comando ssh, recibo el siguiente mensaje:
ssh: conectarse al host dominio.com puerto 22: recurso temporalmente no disponible
Puedo conectarme con éxito usando Putty y también usando ssh dentro de Git Bash.
Entonces, eso me lleva a creer que el problema está en mi PC local y más específicamente dentro del subsistema Linux. Todavía soy muy ecológico con el entorno Linux y no estoy seguro de cómo interpretar este mensaje. ¿Qué recurso no está disponible y qué debo hacer para que esté disponible?
windows-10
bash
ssh
kell
fuente
fuente
git
yapt-get
Respuestas:
Por lo que puedo decir, este es un error en WSL. Con suerte, Microsoft lo solucionará en la próxima versión. Pero por ahora, podemos usar este truco un poco feo.
Actualización n. ° 1 : Definitivamente un error. Encontré este problema en Github. Su solución alternativa para relanzar el shell también funciona para mí si no quieres pasar por todo esto.
TL; DR Agregue esto para FINALIZAR su configuración SSH (generalmente ubicada en
~/.ssh/config
):He aquí por qué funciona: Nuestro tema SSH no es un problema de cortafuegos ya
nc
ytelnet
trabajo al mismo host y el puerto (intentatelnet <host> <port>
onc <host> <port>
: usted debe ver algo asíSSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.7
). Esto lo podemos usar para nuestra ventaja.SSH permite el uso de proxies que toman la entrada estándar y la envían al puerto del servidor a través de la
ProxyCommand
opción. Esto normalmente se usa para hacer un túnel en las redes a un host protegido mediante el uso de un servidor SSH de bastión intermedio, a veces llamado host de salto (consulte este enlace para obtener más información).Este truco le dice a SSH que use un proxy sin host (s) de salto. Por lo tanto, evita la asignación fallida de SSH de recursos TCP al insertar toda la asignación de recursos de red en Netcat, lo que funciona. SSH simplemente hace lo suyo sin conexiones de red, y Netcat envía los datos sin procesar a través de una conexión TCP al servidor SSH.
ADVERTENCIA: Dado que esto modificaProxyCommand
para todos los hosts, no sé cómo interactúa con otros hosts de configuración SSH que usanProxyCommand
. Tengo algunos servidores con los que puedo probar esto, y actualizaré esta respuesta con los resultados. Existe la posibilidad de que no haya efectos secundarios perjudiciales, pero no puedo garantizarlo.Actualización n. ° 2: Realicé algunas pruebas con algunos de mis servidores y parece funcionar. SSH utiliza la entrada superior en la configuración cuando se aplican varias entradas. Por lo tanto, un
ProxyCommand
presente existente sobre este truco lo anularía. Cuando se ejecuta el nuevo comando SSH, vuelve a leer la configuración SSH y, si no hay otroProxyCommand
, SSH usa nuestro trucoProxyCommand
, lo que le permite aplicarse solo a la sesión SSH "más externa". Palabra de advertencia: si coloca el truco en la parte superior del archivo de configuración (o encima de la entrada a la que está intentando hacer SSH), las sesiones SSH que requieren unaProxyCommand
ignorarán a la otraProxyCommand
y en su lugar intentarán resolver la dirección del host y conectarse directamente con Netcat.fuente
vi ~/.ssh/config
que abrió un archivo vacío. Pegué tus comandos pero cuando intento guardar (esc ->: -> wq) me dice"~/.ssh/config" E212: Cannot open file for writing
ls -al ~/.ssh
?Esto también fue un problema para mí, resultó que era mi firewall (Symantec) bloqueando todo el tráfico de Internet desde bash.
Parece que es un problema general con proveedores de firewall de terceros que no reconocen el proceso:
https://github.com/Microsoft/BashOnWindows/issues/809
Cuando desactivé mi firewall, funcionó bien. No puedo encontrar una mejor solución en este momento.
fuente
En mi caso, recibí este error porque una actualización de Windows causó problemas con mi conmutador Hyper-V . Resulta que el host al que intentaba ssh estaba conectado a ese conmutador, lo que solucionó el restablecimiento de ssh.
fuente
Para referencia futura, cuando instale Nginx, bloqueará SSH de forma predeterminada con el mensaje de error "Recurso no disponible temporalmente" a menos que usted ...
fuente