☝🏻 Подняться в начало

Удобный выбор SSH-сервера в консоли

После долгого использования алиасов и настройки их для подключения к разным удаленным серверам, мне это надоело, и я решила найти новый способ как сделать это для себя более удобным способом, и оказывается выход есть!

Нужно просто сделать меню в терминале, в котором я смогу выбрать нужный мне сервер из списка, для быстрого подключения к нему, без ввода миллиона команд и бесконечной настройки алиасов.

Что такое SSH?

SSH (Secure Shell) — это протокол сетевой связи, который обеспечивает безопасную и зашифрованную связь между двумя удаленными устройствами, например, между компьютером и сервером. Он используется для удаленного управления компьютером через командную строку или для передачи файлов между устройствами.

С помощью команды:

ssh-keygen

Можно сгенерировать пару приватного и публичного ключа, необходимых для асимметричного шифрования. Шифрование с открытым ключом позволит проводить аутентификацию на сервере без ввода пароля, с помощью трехстороннего рукопожатия.

Командой:

ssh-copy-id -i ~/.ssh/id_rsa.pub имя_пользователя@ip_сервера 

Мы передадим публичный ключ на удаленный сервер. (Разумеется, если он позволяет подобное действие в конфигурационном файле /etc/ssh/sshd_config).

После чего, для получения доступа к удаленному серверу, будет достаточно ввести всего лишь одну команду:

ssh -i ~/.ssh/id_rsa имя_пользователя@ip_сервера

Теперь, при помощи утилиты whiptail, мы создаем меню:

#!/bin/bash
OPTION=$(whiptail --title "Menu Dialog" --no-button --menu "Choose text" 15 60 4 \
"1" "server 1" \
"2" "server 2" \
"3" "server 3" \
"4" "other" 3>&1 1>&2 2>&3)

exitstatus=$?
if [ $exitstatus = 0 ]; then
    case $OPTION in
      "1")ssh -i ~/.ssh/id_rsa пользователь_сервера_1@адрес_сервера;;
      "2")ssh -i ~/.ssh/id_rsa пользователь_сервера_2@адрес_сервера;;
      "3")ssh -i ~/.ssh/id_rsa пользователь_сервера_3@адрес_сервера;;
      "4")Действие 4, тут вы можете даже открыть еще одно меню;;
    esac
fi

Что при запуске даст нам подобное меню:

Удобный выбор SSH-сервера в консоли
Меню для выбора сервера, созданное с помощью скрипта выше

Для быстрого доступа к данному скрипту, вы можете его указать как алиас в ~/.bashrc, где «~/servers.sh» — путь до вашего скрипта.

alias servers="sh ~/servers.sh"

Не забудьте выдать ему разрешения на исполнения, с помощью команды:

chmod +x ~/servers.sh

Теперь вы всегда будете иметь доступ к этому меню при помощи команды servers.