[Experiencia] Error en la conexión remota de VScode a Ubuntu, No se pudo establecer la conexión

Al utilizar VScode, a menudo se encuentra la siguiente situación: No se pudo establecer la conexión.

inserte la descripción de la imagen aquí

Primero, permítanme presentarles la diferencia entre la conexión remota de VScode y la conexión SSH del terminal : cuando el terminal usa SSH directamente para conectarse, solo necesita abrir el servicio SSH y consumir una pequeña cantidad de memoria; cuando VScode se conecta, automáticamente estará en el directorio de usuario del servidor o de la máquina virtual (también es decir ~/.vscode), instale los complementos relevantes en e inicie un nodo vscode, que consume más memoria que la conexión directa del terminal.

Veo que parte de la información encontrada en Internet es bastante antigua. Se ha vuelto a publicar muchas veces un artículo sobre la configuración de la ruta de configuración de Remote-SSH . Este emm, en 2023, ya no es necesario configurarlo. Luego escriba los problemas que pueda encontrar ahora.

A continuación, presentaré todos los motivos que encontré, así como una idea completa para la solución de problemas, con la esperanza de inspirarlo.

Situación 1: antes de que falle la conexión, no aparece ningún cuadro emergente para ingresar la contraseña

Nota: No hay ningún cuadro emergente que solicite una contraseña,
lo que indica que VScode y el servidor no han interactuado correctamente.
En este momento, es necesario investigar el motivo de la interacción fallida.

  1. Lo primero que hay que considerar son los motivos de red . Intente hacer ping a la dirección IP de la máquina virtual o servidor en el host, y la dirección IP se podrá ver con el comando ifconfigo . ipconfigSi falla el ping y se usa la máquina virtual, vaya a 2; si falla el ping y se usa el servidor, vaya a 5; si el ping funciona, vaya a 6;
    ping falló

  2. El host y la máquina virtual no se comunican entre sí, lo más probable es que haya un problema con la tarjeta de red o el firewall de la máquina virtual . Si la máquina virtual en sí no puede acceder a Internet, configúrela directamente en modo NAT y resuelva el problema de acceso a Internet a través de este artículo "La máquina virtual de Ubuntu no puede conectarse a Internet" antes de regresar; si puede acceder a Internet, simplemente no es posible. interoperable, vaya a 3.

  3. Primero excluya la causa del firewall y primero apague los firewalls de ambas partes. Apague el firewall de la máquina virtual directamente y busque la manera de apagar el firewall del sistema xx usted mismo. Ubuntu es sudo ufw disable; el firewall del host generalmente se ignora, pero si sospecha que es la razón, puede apágalo La forma específica de apagar la computadora con Windows es buscar "Firewall y protección de red" y luego apagarlo directamente. Si no es por el firewall, pasa al 4.

  4. Existe una solución muy rara, pero es cierta: prueba a reiniciar la tarjeta de red de la máquina virtual . El método de operación específico es buscar "conexión de red", como se muestra en la figura siguiente, deshabilitar y habilitar la tarjeta de red relacionada con la máquina virtual e intentar hacer ping nuevamente después de aproximadamente un minuto. Si el ping funciona, pase al 5, si el ping aún falla, puede considerar si el servicio de red relacionado con VMware en Windows está iniciado y buscar específicamente "servicio". Si todo está correcto pero el ping aún falla, tengo no hay elección.
    inserte la descripción de la imagen aquí

  5. El host y el servidor no se comunican entre sí, la mayor parte de esto se debe a la tarjeta de red del host o los firewalls de ambas partes . En casos extremos, el servidor puede desactivar el puerto ping. En este caso, pruebe con otro método de conexión de red, así que vaya a 7. Otras situaciones comunes, una es que el servidor tiene un rango de acceso limitado, por lo que es necesario conectarse a la VPN de la empresa o escuela para acceder; la otra es que el host no puede acceder a Internet, e incluso puede que ni siquiera pueda acceder. Baidu; el acceso al segmento o el firewall del servidor prohíbe el host, entonces debe cerrar el firewall del host o del servidor. Después de verificar, si el ping fue exitoso, vaya a 6.

  6. Intente ingresar por ssh al servidor o host, en una terminal ssh [用户名]@[ip地址] -p [端口号,默认是22]. Si no puedes conectarte, ve al 7; si puedes conectarte, ve al 8.
    inserte la descripción de la imagen aquí

  7. Si no se puede conectar ssh, generalmente se debe a que el servicio ssh no está habilitado o los puertos relacionados con ssh están deshabilitados o modificados. La forma de iniciar el servicio ssh en la máquina virtual o servidor ubuntu es sudo apt install openssh-server. systemctl start sshEl puerto ssh está deshabilitado, apague el firewall, si lo cambia, cambie el puerto.
    Caso extremo 1: El servidor o la máquina virtual no tiene memoria, puede considerar reiniciar el servidor o la máquina virtual.
    Caso extremo 2: Al conectarme con ssh antes, Are you sure you want to continue connecting (yes/no/[fingerprint])? accidentalmente seleccioné otras opciones en lugar de sí para este problema, lo que provocó que la conexión fuera rechazada de forma predeterminada. En este momento, puede ir a la carpeta ~/.sshpara eliminar know_hostsel archivo.
    Pasa al 8 después de conectar .

  8. En este punto, el terminal debería poder usar ssh para conectarse al servidor o a la máquina virtual sin problemas. En este punto, si va a utilizar VScode para conectarse al servidor o a la máquina virtual, debería encontrar que aparecerá al menos un cuadro para ingresar la contraseña . En caso afirmativo, pase a la situación 2; en caso contrario, pase a la situación 9.

  9. No hay ningún problema con la red, pero la interacción aún no es posible, existe una alta probabilidad de que haya un problema con el archivo de configuración de conexión SSH de su VScode . En la siguiente figura se muestra un archivo de configuración de conexión SSH simple, que debe incluir Host, Nombre de host, Usuario y Puerto 22 de forma predeterminada, que se puede agregar o no. Si el cuadro para ingresar la contraseña puede aparecer después de la corrección, vaya a la situación 2; si no, vaya a la situación 10.
    inserte la descripción de la imagen aquí

  10. Si aún no aparece, existe otra situación extrema: cuando VScode crea una nueva conexión, a veces aparecerá una ventana emergente para elegir el tipo de sistema del servidor. Las opciones son Linux, Windows y MacOS. Esto es incorrecto, incluso si finalmente se repara el entorno de red, VScode no puede identificar qué sistema es el servidor o la máquina virtual opuesta, lo que provoca que la conexión falle. La solución es abrir la configuración en la esquina inferior izquierda, buscar remote platformy cambiar la plataforma a la correcta:
    inserte la descripción de la imagen aquí

Situación 2: Después de ingresar la contraseña, muestra que no se puede establecer la conexión

Nota: Ha aparecido un cuadro solicitando una contraseña, pero aún no está conectado, lo que
indica que el problema radica en el comportamiento de la aplicación VScode en el servidor o máquina virtual,
en este momento es necesario verificar en qué paso de la operación de VScode tiene un problema.

  1. Verifique si la contraseña se ingresó incorrectamente. Si la entrada es correcta y la conexión aún falla, vaya a 2.
  2. Si esta es su primera conexión o conexión desde un lugar o máquina diferente, vaya a 3; si se ha conectado a este servidor o máquina virtual antes, pero de repente no puede conectarse, vaya a 5.
  3. Compruebe si el espacio de almacenamiento del servidor o de la máquina virtual está lleno . Después de conectar VScode, instalará complementos relacionados, por lo que es probable que no haya espacio de almacenamiento en medio de la instalación, por lo que no se puede conectar. Si está realmente lleno la solución es utilizar el terminal para conectar primero para liberar espacio, si no es este el motivo pasa al 4.
  4. Verifique si su directorio de usuarios existe en el servidor o máquina virtual y cd ~vea si hay alguna respuesta. Después de conectar VScode, instalará los complementos relacionados. La ruta de instalación predeterminada es ~/.vscode, pero algunos sistemas no crean automáticamente directorios de usuarios cuando se instalan recientemente ~. En este momento, deben crearse manualmente y el propietario de este La carpeta debe chownconfigurarse para este usuario. Si no es por este motivo, pase al 5.
  5. Puede ser que el tiempo transcurrido desde la última conexión haya sido demasiado largo o la señal de la red fuera débil y se desconectara automáticamente, simplemente haga clic en Reintentar para volver a conectarse. Si no, no tengo otra solución en este momento, puedes enviarme el informe de error en el área de comentarios para echarle un vistazo.

Supongo que te gusta

Origin blog.csdn.net/qq_46106285/article/details/132360266
Recomendado
Clasificación