¿Cómo puedo usar Emacs Tramp para duplicar el salto ssh?
(4)
Al menos a partir de Emacs 24 tienen una nueva versión de multi, puedes abrir rutas como esta:
/ssh:bird@bastion|ssh:you@remotehost:/path
Puedo confirmar que esto funciona en mi versión de Emacs 24.3.1. Los documentos lo describen gnu.org/software/tramp/#Ad_002dhoc-multi_002dhops .
Mi campus solo permite acceso ssh a través de un servidor de puerta de enlace. Entonces, para acceder al clúster en el que estoy codificando tengo que enviarlo a la puerta de enlace y luego a la máquina en la que estoy trabajando. La conexión es muy lenta a veces y es frustrante trabajar con ella.
Me encantaría usar algo como vagabundo, que entiendo tendría el búfer abierto en mi máquina local y solo hablar a través de la red cuando guardo en el disco. No estoy muy familiarizado con el vagabundo en absoluto y estoy luchando para que funcione, especialmente a través del doble salto. La documentación dice que esto se logra mediante la definición de proxies en vagabundo, pero no puedo entender la sintaxis.
¿Alguien sabe cómo usar emacs para codificar a través de un doble salto o tiene una solución alternativa para editar el código a través de dos saltos ssh?
Deberías usar ssh para hacer el doble salto. En tu .ssh / config:
Host <host that must be proxied too>
ProxyCommand ssh -qxT <gateway host> nc %h %p
En versiones anteriores de Emacs, Tramp tenía un método multi
. En GNU Emacs 22 y versiones inferiores, puedes usarlo así:
/multi:ssh:user1@host1:ssh:user2@host2:/foo/bar/baz
para abrir /foo/bar/baz
en host2
. Lo mismo es posible en XEmacs, pero con una sintaxis algo diferente. También puedes usar diferentes métodos de acceso.
Si tiene Emacs 24.3 o posterior, vea la respuesta de Joe para una alternativa a la configuración que se describe a continuación. Si va a utilizar este doble salto más de una vez, puede valer la pena modificar tramp-default-proxies-alist
como se describe a continuación, o establecer tramp-save-ad-hoc-proxies
en t
.
Si tiene Emacs 23.1 o posterior, entonces el método multi
ya no es compatible. Puede lograr el mismo resultado configurando "proxies".
En su archivo de configuración .emacs
agregue lo siguiente:
(add-to-list ''tramp-default-proxies-alist
''("HOSTB" nil "/ssh:USERA@HOSTA:"))
Donde HOSTB es el host de destino detrás de HOSTA.
Luego escriba /ssh:USERB@HOSTB:
y emacs le pedirá la contraseña de HOSTA y luego la contraseña de HOSTB.