Как определить, на каком сервере вы используете ssh из терминала?
Я должен ssh на 30 серверов ежедневно, и переключаться между ними постоянно.
В настоящее время я редактирую имя вкладки и пишу IP-адрес для перехода с одного на другой.
Существует ли автоматический способ сделать это (назначить IP-адрес сервера в качестве имени вкладки)? Любые другие альтернативы, которые не будут включать редактирование файла на каждом сервере?
command-line
ssh
RASG
источник
источник
user@hostname
на первом хосте я подключаюсь. Я хотел бы видеть IP-адрес. также, если я прыгаю сserver1
наserver2
, вкладка не меняет имена.Ответы:
Я обычно использую имя хоста, установленное через
$PS1
. Однако, если вы возьмете на себя труд, вы можете начать использовать GNU,screen
а затем вы можете определить функцию следующим образом:Объяснение:
screen
не позволяет напрямую удаленной оболочке делать это, и вы должны настроить ее так, чтобы вам было проще установить заголовок локально и придерживаться его.echo
строку. Возможно, вам придется сделать это тоже.screen
для запуска сеанса сssh
командой. Сеанс заканчивается, когда команда завершается.Вы можете настроить это различными способами. Например, вы можете сохранить имена хостов и IP-адреса в файле и прочитать их (вроде как
ssh_config
) (и, возможно, сохранить для заголовка другие вещи, такие как имена пользователей).Теперь используйте
ssh-title some.host
для подключения. Я думаю, что это единственный способ сделать это, не редактируя ничего на стороне сервера.источник
Несколько способов идентифицировать сервер:
PS1
) и заголовок терминала - небезопасны (любой может их дублировать), но просты и практичны.ip address
- защищен с помощью отпечатка пальца SSH и более легко читается.hostname
- небезопасно, но очень читабельно.источник
Другой вариант - использовать liquidprompt --- работает для обоих
bash
иzsh
, и может быть легко настроен для установки заголовка терминала и даже для окрашивания в разные цвета имени хоста в приглашении:источник
Это решение немного хакерское, но я думаю, что оно сделает то, что вы ищете. Вам нужно
xdotool
иwmctrl
установить для этого, чтобы работать.Сначала вы должны отредактировать ваш
~/.bashrc
файл, потому что по умолчанию терминал сбрасывает свой заголовок после каждой строки, что делает вывод заголовка командной строки бесполезным.Сразу после:
xterm*|rxvt*)
Заменить:
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
С:
PS1="${debian_chroot:+($debian_chroot)}\u@\h \w\a$ "
Далее мы собираемся создать собственный
ssh
скрипт, который называется как угодно, но для этого ответа я буду называть свойtab-ssh
. Откройте текстовый редактор и сохраните следующее какtab-ssh
:Затем сделайте его исполняемым:
chmod +x tab-ssh
Теперь, если вы используете
bash
иgnome-terminal
, при запуске скрипта должна открыться новая вкладка, переименовать ее и начатьssh
сеанс. Например:tab-ssh username@0.0.0.0
откроет новую вкладку, переименует ее
0.0.0.0
(т.е. все, что следует за знаком «@»), затем выполнитusername@0.0.0.0
.Создано с использованием следующего:
источник