Eu gostaria de acelerar a conexão com servidores específicos.
Eu tenho os servidores, digamos:
123.123.123.1
123.123.123.2
123.123.123.3
Normalmente, eu me conecto com o seguinte:
ssh -p 12345 my_user@123.123.123.1
Isso é uma dor, porque a única diferença entre os servidores é o último número do ip.
Eu tentei o seguinte código:
alias ssht='{ ip=$(cat -); ssh -p 12345 my_user@"123.123.123.$ip"; }<<<'
No entanto, recebo um erro:
karl@karls-laptop ~/scripts $ ssht 1
Pseudo-terminal will not be allocated because stdin is not a terminal.
Existe uma maneira de fazer isso funcionar?
123.123.123.1 host1
então usarssh myuser@host1 -p12345
Respostas:
Isso exige uma função - simples e robusta, enquanto que
alias
nesse caso seria frágil.Algo assim deve fazer:
A condição
[[ $1 =~ ^(1|2|3)$ ]]
garante que você inseriu um de 1, 2, 3 como primeiro argumento (qualquer argumento à direita é ignorado).Agora, você pode dar o último octeto desejado como o primeiro argumento:
Coloque isso no seu
~/.bashrc
para tê-lo disponível em qualquer sessão interativa.fonte
exit
porreturn
e inclua o usuáriomy_user
. :)octet=$1; [[ $octet =~ ^[0-9]+$ ]] && [[ $octet -lt 255 ]] && [[ $octet -gt 0 ]] && ssh -p <portNumber> user@hostname
~/.ssh/config
arquivoUse da maneira pretendida e escreva as opções e aliases em
~/.ssh/config
:e assim por diante...
E conecte usando apenas
fonte
Host 123.123.123.*
que especifique a porta e o nome de usuário!Você pode usar padrões no
~/.ssh/config
. Deman ssh_config
:Combinado com:
Então, no seu
~/.ssh/config
, coloque:Então:
fonte
Use uma função:
Uma solução melhor é usar um
config
arquivo ssh :com algumas linhas semelhantes a:
Você também pode usar as teclas ssh para melhorar a velocidade; finalmente, você executa apenas:
e você está conectado a esse servidor.
fonte
.bashrc
ou.bash_func
fonte no seu.bashrc
arquivo.Você nem precisa usar um nome como ssht. Nomes que começam com dígitos, mesmo que apenas dígitos sejam nomes de host válidos no arquivo de configuração ssh.
Abaixo funciona no Xubuntu Xenial
Parte do meu ~ / .ssh / config
Comando que eu corro (abaixo eu adicionei
-vv
para log detalhado àSTDOUT
aka sua tela por padrão)Resultado
Atualização - abaixo está uma solução alternativa hackish, leve-a apenas para exercícios bashist, talvez para coisas rápidas e sujas:
O que faz
-L
,-R
,-D
), detalhado modo (-vv
), não-TTY (-T
) etc.Por exemplo, eu quero iniciar um proxy de meias sem terminal
Como você pode ver, nenhum prompt de comando, ele executado com
-vv
,-T
,-D 1080
argumentos.Também posso verificar o túnel (basicamente proxy SOCKS5) na minha máquina
fonte