GNU/Linux >> Tutoriales Linux >  >> Linux

Servidor de retransmisión SSH con OpenSSH

Solución 1:

Por supuesto; simplemente use el reenvío/tunelización de puertos SSH. Inicie una conexión ssh a la máquina "proxy" usando el siguiente comando:

ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
  • $PROXYHOST :la máquina a la que tienes acceso SSH
  • $REMOTEHOST :la máquina a la que $PROXYHOST se puede conectar, pero tú no. Use un nombre de host o IP que $PROXYHOST puede usar para referirse a la máquina
  • $SSHPORT :el puerto que sshd está escuchando en remotehost; muy probablemente 22
  • $LOCALPORT :el puerto de salida local SSH se está abriendo en su máquina local que reenvía al puerto 22 en $REMOTEHOST

Deje esa conexión para mantener el túnel funcionando. Es posible que desee agregar también -N al comando para que esta conexión no abra un shell remoto y no lo cierre accidentalmente más tarde.

Una vez establecido el túnel, haga lo siguiente:

ssh -p $LOCALPORT localhost

Esto intenta una conexión SSH a su máquina local en el puerto que se reenvía al $REMOTEHOST Puerto SSH de .

Solución 2:

Si está dispuesto a actualizar la configuración de su cliente, puede configurar su cliente para usar su caja de puerta de enlace como un proxy. Su caja de retransmisión necesitará netcat instalado, y para obtener los mejores resultados querrá tener una configuración de autenticación basada en clave.

Esto es lo que uso en mi .ssh/config para conectarme a través de otro host.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh [email protected] "/bin/netcat -w 1 internal-ssh-host 22"

Con lo anterior, simplemente puede ejecutar el comando ssh internal-ssh-host-proxy desde su máquina cliente.

Si el host proxy SSH tiene el cliente OpenSSH 5.4 o superior, no necesita netcat y, en su lugar, puede usar el modo netcat integrado.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh [email protected] -W internal-ssh-host:22

Solución 3:

De las respuestas presentadas, la de Zordache es la mejor solución general. Sin embargo, para la posteridad, si simplemente desea conectarse ad-hoc sin editar su configuración, use el -t bandera para asignar un pseudo terminal junto con la ejecución de ssh directamente en el relé.

ssh -t relay.example.com ssh internal.example.com

Solución 4:

Puede reenviar conexiones automáticamente usando OpenSSH. En tu ~/.ssh/authorized_keys archivo, puede especificar un comando para ejecutar, que podría ser un SSH a una segunda máquina.

[ssh client] ----> [ssh relay server] ----> [ssh target server]
    you          modified authorized_keys      target machine

Lo que terminará viendo son dos indicaciones para Password: :uno para el servidor de retransmisión y otro para el servidor de destino. Siempre puede eliminar este comportamiento mediante el uso de certificados.


Linux
  1. Prácticas recomendadas de seguridad de OpenSSH

  2. Cómo instalar el servidor SSH en Ubuntu/Debian con OpenSSH

  3. Solucionar problemas de SSH

  4. ¿SSH con Authorized_keys a un sistema Ubuntu con homedir encriptado?

  5. Nombre de usuario y contraseña en la línea de comandos con sshfs

Reparación de error de tubería rota con conexión SSH

Cómo bloquear su servidor CentOS con IPTables

Genere claves RSA con SSH usando PuTTYgen

Inicie sesión en un servidor Linux con una clave privada SSH en un cliente de Windows

Cómo proteger SSH con Fail2Ban

Conéctese con OpenSSH (Windows)