Sí, usando ProxyCommanden su configuración SSH.
Cree un archivo de configuración SSH en su directorio de inicio (a menos que quiera hacer esto en todo el sistema) ~/.ssh/config:
Host unibroker # Machine B definition (the broker)
Hostname 12.34.45.56 # Change this IP address to the address of the broker
User myusername # Change this default user accordingly
# (`user@unibroker` can overwrite it)
Host internalmachine # Machine A definition (the target host)
ProxyCommand ssh -q unibroker nc -q0 hostname.or.IP.address.internal.machine 22
Ahora puede llegar a la Máquina A directamente usando
ssh user@internalmachine
También tenga en cuenta que ahora tiene un único nombre de destino de host SSH para él, también puede usarlo en otras aplicaciones. P.ej:
SCP para copiar archivos.
scp somefile user@internalmachine:~/
En sus aplicaciones GUI:
utilizar sftp://user@internalmachine/como ubicación para navegar en la máquina.
Basado en KDE (Dolphin): uso fish://user@internalmachine/
Notas
Cambie hostname.or.IP.address.internal.machiney el puerto ( 22) a la máquina que desea alcanzar como si fuera desde la unibrokermáquina.
Dependiendo de las versiones de netcat en el host unibroker, la -q0opción debe omitirse. En cuanto a la autenticación; básicamente está configurando dos conexiones SSH desde su estación de trabajo. Esto significa que tanto el host del unibroker como el host de la máquina interna se verifican / autentican uno tras otro (tanto para el par de claves / contraseña como para la verificación de la clave del host).
Explicación
Este enfoque del uso de ProxyCommandy 'netcat' es solo una forma de hacerlo. Me gusta esto, porque mi cliente SSH habla directamente con la máquina de destino para que pueda verificar la clave de host de mi cliente y puedo usar mi autenticación de clave pública sin usar otra clave en el intermediario.
Cada uno Hostdefine el inicio de una nueva sección de host. Hostnamees el nombre de host de destino o la dirección IP de ese host. Useres lo que proporcionaría como parte del usuario ssh user@hostname.
ProxyCommandse utilizará como tubería para la máquina de destino. Al usar SSH en la primera máquina y configurar directamente un 'netcat' ( nc) al objetivo desde allí, esto es básicamente un texto sin formato hacia la máquina interna desde el intermediario entre ellos. Las -qopciones son silenciar cualquier salida (solo una preferencia personal).
Asegúrese de tener netcat instalado en el agente (generalmente disponible de forma predeterminada en Ubuntu), ya sea netcat-openbsd
o netcat-traditional
.
Tenga en cuenta que todavía está utilizando SSH con cifrado dos veces aquí. Si bien el canal netcat es de texto sin formato, su cliente SSH en su PC configurará otro canal cifrado con la máquina de destino final.