¿Es posible usar OpenSSH para retransmitir a otros dispositivos habilitados para SSH, como conmutadores de enrutadores, etc. Si esto es algo que se puede hacer sin crear una aplicación a medida en Linux para hacerlo?
Gracias
¿Es posible usar OpenSSH para retransmitir a otros dispositivos habilitados para SSH, como conmutadores de enrutadores, etc. Si esto es algo que se puede hacer sin crear una aplicación a medida en Linux para hacerlo?
Gracias
Respuestas:
Seguro; solo use el reenvío / túnel de puerto SSH. Inicie una conexión ssh a la máquina "proxy" con 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 usted no. Use un nombre de host o IP que $PROXYHOST
pueda 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 también desee agregar -N
al comando para que esta conexión no muestre 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 del.
Si está dispuesto a actualizar la configuración de su cliente, puede configurarlo para usar su caja de puerta de enlace como proxy . Su caja de retransmisión necesitará instalar netcat, y para obtener los mejores resultados querrá tener una configuración de autenticación basada en claves.
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 username@ssh-relay-host "/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 incorporado.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh username@ssh-relay-host -W internal-ssh-host:22
De las respuestas presentadas, 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
indicador 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
Puede reenviar conexiones automáticamente con OpenSSH. En su ~/.ssh/authorized_keys
archivo, puede especificar un comando para ejecutar, que podría ser un SSH para 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 Password:
: una para el servidor de retransmisión y otra para el servidor de destino. Siempre puede eliminar este comportamiento mediante el uso de certificados.