Quiero configurar un alias en mi archivo de configuración que tenga el mismo resultado que este comando:
ssh -N devdb -L 1234:127.0.0.1:1234
Mi entrada .ssh / config para devdb
:
Host devdb
User someuser
HostName the_hostname
LocalForward 1234 127.0.0.1:1234
¿Qué pongo en la configuración anterior para no iniciar un shell?
ssh
ssh-config
mikeb
fuente
fuente
Respuestas:
Entonces,
ssh.c
para OpenSSH 7.6p1 encontramostambién lo
-N
hacen dos cosas:no_shell_flag
solo aparece enssh.c
y solo está habilitado para las opciones-W
o-N
, de lo contrario, aparece en algunos bloques lógicos relacionados con laControlPersist
verificación de la cordura que implica tenedores de fondo. No veo una forma en que una opción pueda configurarlo directamente.readconf.c
elrequest_tty
corresponde a laRequestTTY
opción detallada enssh_config(5)
.Esto deja (aparte de mono parchear OpenSSH y recompilar, o pedir una
ssh_config
opción para alternarno_shell_flag
con ...) algo como:Lo que técnicamente inicia un shell, pero ese shell debe reemplazarse de inmediato con el
cat
programa que luego debe bloquear permitiendo que el puerto hacia adelante se use mientras tanto.cat
es portátil, pero consumirá entradas (si hay alguna) o podría fallar (si la entrada estándar está cerrada). Otra opción sería ejecutar algo que solo bloquea .fuente
.ssh/config
... ¡bien hecho!RemoteCommand exec sleep infinity
.@thrig tiene la respuesta correcta basada en su deseo de hacer esto únicamente dentro de
.ssh/config
También se podría considerar el uso de una función con valores predeterminados para acelerar otros comandos de túnel (especialmente si el túnel no cambia sino solo el host).
Aquí hay tres ejemplos de su uso: sin argumentos se utilizan los valores predeterminados especificados en la función:
con el túnel predeterminado, ejecute en un host diferente:
con ambos valores predeterminados, ejecute una única vez en un nuevo host / túnel:
fuente
Un comando remoto más útil basado en la respuesta de @ thrig:
El
read -r -d '' _
bloqueará la conexión hasta que el usuario presionecontrol+c
.fuente