Chciałbym przyspieszyć łączenie się z określonymi serwerami.
Mam serwery, powiedzmy:
123.123.123.1
123.123.123.2
123.123.123.3
Zwykle łączę się z następującymi elementami:
ssh -p 12345 my_user@123.123.123.1
Jest to ból, ponieważ jedyną różnicą między serwerami jest ostatnia liczba adresu IP.
Próbowałem następującego kodu:
alias ssht='{ ip=$(cat -); ssh -p 12345 my_user@"123.123.123.$ip"; }<<<'
Jednak pojawia się błąd:
karl@karls-laptop ~/scripts $ ssht 1
Pseudo-terminal will not be allocated because stdin is not a terminal.
Czy istnieje sposób, aby to zadziałało?
123.123.123.1 host1
a następnie użyjssh myuser@host1 -p12345
Odpowiedzi:
Wymaga to funkcji - prostej i niezawodnej, podczas gdy
alias
w tym przypadku byłoby kruche.Coś takiego powinno zrobić:
Warunek
[[ $1 =~ ^(1|2|3)$ ]]
upewnia się, że jako pierwszy argument wprowadzono jeden z 1, 2, 3 (każdy argument końcowy jest ignorowany).Teraz możesz podać żądany ostatni oktet jako pierwszy argument:
Umieść to w swoim,
~/.bashrc
aby było dostępne w każdej sesji interaktywnej.źródło
exit
zreturn
obejmują użytkownikowimy_user
. :)octet=$1; [[ $octet =~ ^[0-9]+$ ]] && [[ $octet -lt 255 ]] && [[ $octet -gt 0 ]] && ssh -p <portNumber> user@hostname
~/.ssh/config
plikuUżyj zamierzonego sposobu i zapisz opcje i aliasy w
~/.ssh/config
:i tak dalej...
A następnie połącz się tylko za pomocą
źródło
Host 123.123.123.*
który określa port i nazwę użytkownika!Możesz używać wzorów w
~/.ssh/config
. Odman ssh_config
:W połączeniu z:
Tak więc w swoim
~/.ssh/config
:Następnie:
źródło
Zamiast tego użyj funkcji:
Lepszym rozwiązaniem jest użycie
config
pliku ssh :z niektórymi liniami podobnymi do:
Możesz także użyć klawiszy ssh, aby poprawić prędkość, w końcu uruchamiasz tylko:
i masz połączenie z tym serwerem.
źródło
.bashrc
a.bash_func
następnie pobrać w swoim.bashrc
pliku.Nie musisz nawet używać nazwy takiej jak ssht. Nazwy zaczynające się od cyfr, nawet tylko cyfry są poprawnymi nazwami hostów w pliku konfiguracyjnym ssh.
Poniżej działa na Xubuntu Xenial
Część mojego ~ / .ssh / config
Polecenie uruchamiam (poniżej dodałem domyślnie
-vv
pełne logowanie doSTDOUT
aka ekranu)Wynik
Aktualizacja - poniżej jest hackish alternatywne rozwiązanie, weź to tylko dla ćwiczeń basztystów, może dla szybkich i brudnych rzeczy:
Co to robi
-L
,-R
,-D
), gadatliwy trybie (-vv
), no-TTY (-T
) itd.Na przykład chcę uruchomić proxy skarpet bez terminala
Jak widać, nie ma wiersza polecenia, jest wykonany z
-vv
,-T
,-D 1080
argumentów.Mogę również zweryfikować tunel (w zasadzie proxy SOCKS5) na moim komputerze
źródło