Secure Shell (SSH) es una herramienta de desarrollo clave de WordPress. Otorga a los usuarios avanzados acceso a plataformas y programas informáticas clave que facilitan, aceleran y organizan la codificación y otras tareas.
Así que si intenta usar SSH sólo para ver un error de «Conexión rechazada», puede empezar a sentirse preocupado. Sin embargo, este es un problema común, y existe la posibilidad de arreglarlo por su propia cuenta. Volverá a ejecutar los comandos en poco tiempo.
En este post, discutiremos qué es la SSH y cuándo usarla. Luego explicaremos algunas razones comunes por las que su conexión puede ser rechazada, incluyendo en PuTTY. Por último, daremos algunos consejos para la solución de problemas.
¡Vamos a sumergirnos!
¿Qué es la SSH y cuándo debo usarla?
Secure Shell (SSH), también llamado a veces Secure Socket Shell, es un protocolo para acceder de forma segura al servidor de su sitio a través de una red no segura. En otras palabras, es una forma de acceder de modo remoto seguro a su servidor usando su interfaz de línea de comandos preferida:
A diferencia del Protocolo de Transferencia de Archivos (FTP), que sólo permite subir, borrar y editar archivos en su servidor, el SSH puede realizar una amplia gama de tareas. Por ejemplo, si un error le bloquea el sitio de WordPress, puede usar SSH para acceder a él remotamente.
Este protocolo también le permite utilizar varias herramientas de desarrollo claves, incluyendo:
- WP-CLI. La línea de comandos de WordPress. Puede usarlo para una variedad de tareas, incluyendo nuevas instalaciones, actualizaciones masivas de plugins e importaciones de archivos de medios.
- Compositor. Un administrador de paquetes PHP. Le permite implementar varios marcos de trabajo para su uso en el código de su sitio, sacando las bibliotecas y dependencias necesarias.
- Git. Un sistema de control de versiones usado para rastrear los cambios en el código. Esto es especialmente útil para los equipos de desarrolladores que trabajan juntos en un solo proyecto.
- npm. Un administrador de paquetes de JavaScript. Incluye una línea de comandos y un registro de software JavaScript. Nota: Los clientes de Kinsta necesitarán un plan Enterprise para poder acceder a esta función.
Es importante señalar que el uso de SSH es una habilidad avanzada. En términos generales, los usuarios no profesionales de WordPress deberían ponerse en contacto con sus desarrolladores o proveedores de hospedaje para pedir ayuda, en lugar de tratar de resolver los problemas con SSH ellos mismos.
¿Por qué se rechaza mi conexión de SSH? (5 razones para los errores de conectividad)
Desafortunadamente, hay muchos escenarios que pueden ocurrir mientras intenta conectarse a su servidor vía SSH, lo que podría resultar en un error de lectura de «Conexión rechazada».
A continuación se presentan algunos de los problemas más comunes que podrían estar causándole problemas.
1. Su servicio de SSH ha caído
Para conectarse a su servidor con SSH, debe estar ejecutando un SSH daemon, un programa que se ejecuta en segundo plano para escuchar y aceptar conexiones.
Si este servicio está caído, no podrá conectarse con éxito a su servidor y puede recibir un error de Conexión rechazada:
El demonio SSH de su servidor puede estar caído por una amplia variedad de razones, incluyendo picos de tráfico inesperados, cortes de recursos, o incluso un ataque de denegación de servicio distribuido (DDoS). Además de los pasos para la solución de problemas que mencionaremos a continuación, es posible que desee ponerse en contacto con su proveedor de alojamiento para determinar la causa principal del problema.
Si sospecha que su servicio de SSH puede estar caído, puede ejecutar este comando para averiguarlo:
sudo service ssh status
Si la línea de comandos devuelve un estado de inactividad, entonces es probable que haya encontrado la razón de su error de conectividad.
2. Tiene las credenciales equivocadas
Aunque parezca demasiado simple para ser verdad, es posible que esté introduciendo las credenciales equivocadas al intentar conectarse a su servidor. Hay cuatro piezas de información necesarias para ejecutar el SSH:
- Nombre del anfitrión. La dirección IP del servidor al que intenta conectarte o su nombre de dominio.
- Nombre de usuario. Su nombre de usuario de (S)FTP.
- Contraseña. Su contraseña del (S)FTP.
- Puerto. El puerto por defecto es el 22. Sin embargo, algunos proveedores de hospedaje (incluido Kinsta) cambian su número de puerto SSH por razones de seguridad. Si este es el caso, debería poder encontrarlo entrando en su tablero de MyKinsta.
También puede comprobar qué puerto se está usando para SSH ejecutando este comando:
grep Port /etc/ssh/sshd_config
La línea de mando debería devolver el puerto correcto.
Compruebe que está introduciendo las credenciales correctas y teniendo en cuenta la posibilidad de errores de escritura o de introducir una dirección IP o un puerto erróneo.
3. El puerto que está tratando de usar está cerrado
Un «puerto» es simplemente el punto final al que se le dirige cuando se conecta a su servidor. Además de asegurarse de que tiene el correcto, también querrá comprobar si el puerto que intenta usar está abierto.
Cualquier puerto abierto es una vulnerabilidad de seguridad, ya que los hackers pueden intentar explotarlo y obtener acceso al servidor. Por esta razón, los puertos no utilizados suelen cerrarse para evitar ataques.
En el caso de que el puerto 22, o el puerto SSH personalizado para su servidor, se haya cerrado, es probable que vea un error de Conexión rechazada. Puede comprobar si el puerto está escuchando ejecutando este comando:
sudo netstat -plnt
La línea de comando debe devolver una lista de puertos y sus respectivos «estados». Quiere que el estado del puerto 22 sea ESCUCHAR. Si no lo es, tendrá que reabrir el puerto para conectarse a su servidor.
4. SSH no está instalado en su servidor
Como mencionamos brevemente antes, los servidores usan SSH deamons para escuchar y aceptar conexiones. Por lo tanto, si el servidor al que intenta conectarse no tiene uno instalado, no podrá acceder a él usando SSH.
En general, casi todos los proveedores de hospedaje tendrán instalados en sus servidores SSH deamons por defecto. Este problema en particular es más común en los servidores locales o dedicados.
5. La configuración del cortafuegos está impidiendo una conexión SSH
Dado que los puertos abiertos presentan un riesgo de seguridad, los cortafuegos instalados para proteger los servidores de los piratas informáticos a veces bloquean las conexiones con ellos. Desafortunadamente, esto significa que incluso los usuarios inofensivos que están tratando de SSH en sus servidores pueden recibir un error de «Connection refused» como resultado de la configuración del firewall.
Si la configuración parece estar en orden y aún así no puede conectarse, eche un vistazo a las reglas de su cortafuegos. Puede mostrarlos en su interfaz de línea de comandos con los siguientes comandos:
sudo iptables-save # display IPv4 rules
sudo ip6tables-save # display IPv6 rules
Sus resultados variarán, pero deberá buscar estos elementos para determinar si su cortafuegos bloquea las conexiones SSH:
- dport 22: Se refiere al puerto de destino, que en el caso de SSH suele ser el puerto 22 (recordatorio: Kinsta no utiliza este número de puerto).
- RECHAZAR: Esto indicaría que se están rechazando las conexiones desde el destino especificado.
- BÁJALO: Como RECHAZAR, esto significa que las conexiones con el puerto relevante están siendo bloqueadas.
Si busca los resultados de los comandos anteriores para el puerto 22, debería ser capaz de determinar si su cortafuegos está impidiendo una conexión SSH. Si es así, tendrá que cambiar las reglas para aceptar las solicitudes.
¿Por qué dice la PuTTY que se rechazó la conexión?
PuTTY es un cliente de SSH. Si está familiarizado con el FTP, esta plataforma es el equivalente al FileZilla de SSH en las máquinas de Windows. En otras palabras, PuTTY permite a los usuarios introducir sus credenciales y lanzar una conexión SSH:
Si es un usuario de PuTTY y ve el error de Conexión rechazada, la causa es probablemente una de las enumeradas arriba.
Este es un error de conectividad SSH como cualquier otro, y los consejos para la resolución de problemas que se dan a continuación deberían funcionar tanto si está usando PuTTY, Terminal, o cualquier otro programa para conectarse a su servidor con SSH.
¿Cómo puedo solucionar los errores de conectividad de SSH?
Cuando se experimenta un error de conectividad SSH, hay algunos pasos que se pueden tomar para solucionarlo dependiendo de la causa. Aquí hay algunos consejos para solucionar los motivos de un error de rechazo de conexión que hemos cubierto anteriormente:
- Si su servicio de SSH está caído. Contacte con su proveedor de alojamiento para ver por qué su servicio de SSH no funciona. Para localhost o servidores dedicados, puede usar el comando sudo service ssh restart para intentar que funcione de nuevo.
- Si ha introducido las credenciales equivocadas. Una vez que haya comprobado el puerto SSH con el comando grep Port /etc/ssh/sshd_config, intente conectarse de nuevo con los detalles correctos.
- Si su puerto SSH está cerrado. Esto suele ser un efecto secundario de una de las dos razones que se enumeran a continuación. Instale un SSH deamon en el servidor al que quiere conectarse o cambie las reglas del cortafuegos para aceptar conexiones a su puerto SSH.
- Si SSH no está instalado en su servidor. Instale una herramienta SSH como OpenSSH en el servidor al que quiere conectarse usando el comando sudo apt install openssh-server.
- Si su cortafuegos está bloqueando su conexión SSH. Deshabilita las reglas del cortafuegos que bloquean su conexión SSH cambiando la configuración del puerto de destino a ACEPTAR.
Si intenta conectarse al servidor de su proveedor de hospedaje, puede ser más prudente contactar con el servicio de asistencia técnica que intentar solucionar el problema usted mismo. Los usuarios de localhost o de servidores dedicados pueden encontrar más apoyo en foros más avanzados si ninguna de las soluciones anteriores funciona.
Resumen
Ser capaz de conectarse a su servidor con SSH es conveniente en una amplia gama de situaciones. Puede permitirte acceder a su sitio cuando esté bloqueado en su panel de control de WordPress, ejecutar comandos a través de WP-CLI, rastrear los cambios en el código de su sitio con Git, y más.
Aunque hay varias causas que podrían estar detrás de su error de conectividad SSH, estas son algunas de las más comunes:
- Su servicio de SSH está caído.
- Tiene las credenciales equivocadas.
- El puerto que está tratando de usar está cerrado.
- SSH no está instalado en su servidor.
- La configuración del cortafuegos impide una conexión SSH.