Me gustaría acelerar la conexión a servidores específicos.
Tengo los servidores, digamos:
123.123.123.1
123.123.123.2
123.123.123.3
Normalmente me conecto con lo siguiente:
ssh -p 12345 my_user@123.123.123.1
Esto es una molestia porque la única diferencia entre los servidores es el último número de la IP.
Intenté el siguiente código:
alias ssht='{ ip=$(cat -); ssh -p 12345 my_user@"123.123.123.$ip"; }<<<'
Sin embargo me sale un error:
karl@karls-laptop ~/scripts $ ssht 1
Pseudo-terminal will not be allocated because stdin is not a terminal.
¿Hay alguna manera de hacer que esto funcione?
123.123.123.1 host1
luego usarssh myuser@host1 -p12345
Respuestas:
Esto requiere una función: simple y robusta, mientras que un
alias
en este caso sería frágil.Algo como esto debería hacer:
La condición
[[ $1 =~ ^(1|2|3)$ ]]
asegura que haya ingresado uno de 1, 2, 3 como primer argumento (se ignora cualquier argumento final).Ahora, puede dar el último octeto deseado como primer argumento:
Pon esto en tu
~/.bashrc
para tenerlo disponible en cualquier sesión interactiva.fuente
exit
conreturn
e incluir el usuariomy_user
. :)octet=$1; [[ $octet =~ ^[0-9]+$ ]] && [[ $octet -lt 255 ]] && [[ $octet -gt 0 ]] && ssh -p <portNumber> user@hostname
~/.ssh/config
archivoUse la forma prevista y escriba las opciones y los alias en
~/.ssh/config
:y así...
Y luego conecta simplemente usando
fuente
Host 123.123.123.*
que especifique el puerto y el nombre de usuario!Puedes usar patrones en
~/.ssh/config
. Deman ssh_config
:Combinado con:
Entonces, en tu
~/.ssh/config
, pon:Luego:
fuente
Use una función en su lugar:
Una mejor solución es usar un
config
archivo ssh :con algunas líneas similares a:
También puede usar las teclas ssh para mejorar la velocidad, finalmente solo ejecuta:
y estás conectado a ese servidor.
fuente
.bashrc
o.bash_func
luego buscarlo en tu.bashrc
archivo.Ni siquiera necesita usar un nombre como ssht. Los nombres que comienzan con dígitos, incluso solo los dígitos, son nombres de host válidos en el archivo de configuración ssh.
A continuación funciona en Xubuntu Xenial
Parte de mi ~ / .ssh / config
Comando que ejecuto (a continuación agregué
-vv
para el registro detallado aSTDOUT
aka su pantalla por defecto)Salida
Actualización: a continuación se muestra una solución alternativa agresiva, tómala solo para el ejercicio bashist, quizás para cosas rápidas y sucias:
Que hace
-L
,-R
,-D
), modo (detallado-vv
), no-TTY (-T
), etc.Por ejemplo, quiero iniciar un proxy de calcetines sin terminal
Como se puede ver, no hay símbolo del sistema, se ejecuta con
-vv
,-T
,-D 1080
argumentos.También puedo verificar el túnel (básicamente el proxy SOCKS5) en mi máquina
fuente