¿Hay alguna manera, en un solo comando, de establecer una conexión ssh desde mi computadora A, a través de la computadora B, a la computadora C, de modo que tenga acceso al shell en la computadora C?
Una arruga (que parece descartar simplemente reenviar la conexión ssh usando la opción -L) es que tengo la contraseña de la cuenta en la computadora B, y la cuenta en la computadora B está autorizada para conectarse a la cuenta en la computadora C, pero No tengo la contraseña de la cuenta en la computadora C.
Respuestas:
Comprendí que solo desea iniciar sesión en la computadora C, no realmente hacer un túnel de A a C. Entonces, esto debería ser el truco:
Es posible que deba ingresar contraseñas dos veces, primero para la computadora B y luego para la computadora C, pero esto se puede evitar utilizando la autenticación de par de claves de ssh.
fuente
ssh -t computer-b "ssh -t computer-c 'ssh computer-d'"
: DProbablemente desee utilizar ProxyCommand de SSH: http://benno.id.au/blog/2006/06/08/ssh_proxy_command
fuente
Si está utilizando claves ssh, podría generar una nueva clave para la máquina B y usarla para la conexión de A a B. En la máquina B, puede agregar
en el
~/.ssh/authorized_keys
archivo Eso significa que siempre que se conecte a B con esa clave ssh, ejecutará elssh C
comando.No sé si esto funciona con scp.
fuente
Utilizar
ProxyCommand
Ver
man ssh_config
. Recomiendo hacer uso deProxyCommand
. Tomemos su escenario original:Edite
~/.ssh/config
con los siguientes contenidos.Ahora podrá llegar de manera transparente a la computadora C. ej.
Ventajas de este método
Más seguro
Solo necesita su clave privada para estar en la computadora A (su computadora). El
nc
comando actuará como un proxy en el que SSH cifrará el tráfico. Esto incluye autenticación. Es una muy mala idea distribuir su clave privada a varios servidores (ya que cualquier servidor comprometido con su clave privada en última instancia compromete su clave privada).Partidos Múltiples destinos
Se pueden combinar varias computadoras de destino usando
Host
. Una sola computadora o cualquier computadora dentro de una red específica (por ejemplo,192.168.35.0/24
en el ejemplo anterior) a proxy a través de la computadora B. También sirve como un alias.En el ejemplo anterior, enviará un proxy a través de la computadora B para llegar a la dirección IP.
Proxies en cadena de margaritas
Con este método, puede conectar en cadena tantos servidores proxy automáticos como sea necesario. por ejemplo, puede agregar una computadora D a la que solo se puede acceder desde la computadora C y funcionará de manera transparente.
ssh computerd
automáticamente proxy a través de la computadora C y la computadora B en losssh_config
ejemplos anteriores .fuente