Я хотел бы ускорить подключение к конкретным серверам.
У меня есть серверы, скажем:
123.123.123.1
123.123.123.2
123.123.123.3
Я обычно соединяюсь со следующим:
ssh -p 12345 my_user@123.123.123.1
Это боль, потому что единственная разница между серверами - это последний номер ip.
Я попробовал следующий код:
alias ssht='{ ip=$(cat -); ssh -p 12345 my_user@"123.123.123.$ip"; }<<<'
Однако я получаю ошибку:
karl@karls-laptop ~/scripts $ ssht 1
Pseudo-terminal will not be allocated because stdin is not a terminal.
Есть ли способ заставить это работать?
123.123.123.1 host1
затем использоватьssh myuser@host1 -p12345
Ответы:
Это требует функции - простой и надежной, тогда как
alias
в этом случае хрупкая.Нечто подобное должно сделать:
Условие
[[ $1 =~ ^(1|2|3)$ ]]
гарантирует, что вы ввели один из 1, 2, 3 в качестве первого аргумента (любой конечный аргумент игнорируется).Теперь вы можете указать желаемый последний октет в качестве первого аргумента:
Поместите это в свой,
~/.bashrc
чтобы оно было доступно в любой интерактивной сессии.источник
exit
сreturn
и включает пользовательmy_user
. :)octet=$1; [[ $octet =~ ^[0-9]+$ ]] && [[ $octet -lt 255 ]] && [[ $octet -gt 0 ]] && ssh -p <portNumber> user@hostname
~/.ssh/config
файлИспользуйте намеченный способ и запишите параметры и псевдонимы в
~/.ssh/config
:и так далее...
А потом подключиться просто используя
источник
Host 123.123.123.*
указать строку конфигурации ssh, которая указывает порт и имя пользователя!Вы можете использовать шаблоны в
~/.ssh/config
. Отman ssh_config
:В сочетании с:
Итак, по вашему
~/.ssh/config
, положите:Потом:
источник
Вместо этого используйте функцию:
Лучшее решение - использовать
config
файл ssh :с некоторыми строками, похожими на:
Вы также можете использовать ssh-ключи для улучшения скорости, наконец, вы только запускаете:
и вы подключены к этому серверу.
источник
.bashrc
или.bash_func
затем поместить это в свой.bashrc
файл.Вам даже не нужно использовать такое имя, как ssht. Имена, начинающиеся с цифр, даже только цифры являются действительными именами хостов в конфигурационном файле ssh.
Ниже работает на Xubuntu Xenial
Часть моего ~ / .ssh / config
Команда, которую я запускаю (ниже я добавил
-vv
для подробного ведения журнала наSTDOUT
вашем экране по умолчанию)Выход
Обновление - ниже приведено хакерское альтернативное решение, возьмите его только для базовых упражнений, может быть, для быстрых и грязных вещей:
Что оно делает
-L
,-R
,-D
), многословный режим (-vv
), нет-TTY (-T
) и т.д.Например, я хочу запустить прокси socks без терминала
Как вы можете видеть, нет командной строки, она выполнена с
-vv
,-T
,-D 1080
аргументами.Я могу проверить туннель (в основном SOCKS5 прокси) на моей машине тоже
источник