Назад | Перейти на главную страницу

Вход на несколько серверов Linux с помощью ssh

У меня есть локальная машина с Windows, где я подключаюсь к локальному Linux-серверу через putty, и мне придется войти на несколько Linux-серверов, используя ssh, через sudo.

Мне было интересно, есть ли сценарий Windows .bat, который помог бы мне в этом.

Обычно я вхожу на сервер следующим образом:

#ssh username@server.hostname.com -v -p2345
#sudo su -

И мне не удалось найти никаких ссылок на ServerFault, чтобы автоматизировать это. Не уверен, что пропустил или пропустил ... :-)

Пожалуйста, дайте мне знать, есть ли кто-нибудь, кто бы это сделал, и если да, то как (был бы признателен, если бы кто-нибудь мог предоставить мне сценарий .bat).

Ура

Если вам нужно что-то сделать в каждой системе, в которую вы входите, вы можете настроить и распространить .bashrc, который автоматизирует ваши задачи входа в систему.

Тем не менее, не автоматизируйте sudo-ing для получения root-прав. Вы применяете к себе божественные силы; по крайней мере, вы должны вводить пароль, чтобы напоминать вам о необходимости быть осторожными. Лучшая практика и политика нашего магазина - никогда не использовать sudo su для получения root-прав; все, что вам нужно сделать, должно выполняться отдельными командами sudo. Таким образом, вы получаете доступ к привилегиям только тогда, когда они вам нужны; и все ваши привилегированные действия регистрируются, любезно предоставлено sudo, улучшая безопасность и иногда отвечая на вопрос "Что, черт возьми, случилось в этой системе?"

Это не совсем то, о чем вы просите, но gnu screen невероятно полезен для управления несколькими серверами: http://www.gnu.org/software/screen/

Чтобы начать или повторно подключиться к сеансу экрана, когда вы где-то используете ssh, вы можете сделать это:

ssh user@host screen -RD

Или запустите "screen -RD" после подключения. Делайте все, что вам нужно, а затем вместо выхода из системы вы «отключаетесь» (Ctr-a d) от сеанса экрана или просто закрываете окно терминала. В следующий раз, когда вы войдете в систему с помощью ssh, вы вернетесь туда, где остановились.

Еще немного информации на экране, которая, по общему признанию, может немного сбивать с толку:

Вы хотите, чтобы одни и те же группы операций выполнялись повторно? Вы можете захотеть проверить Ткань, которая представляет собой классную библиотеку Python, позволяющую идти дальше и итеративно запускать дерьмо на компьютерах после SSH-подключения к ним. В противном случае, если вы просто хотите вызвать массу запросов с использованием ssh-входа, я бы предложил следующее.

  1. Настройте ключи SSH (я предполагаю, что это доступно вам). Это самый простой учебник, который я знаю, объясняет это с помощью PuTTY.

  2. Настройте командный файл вот так. Вы можете использовать PuTTY и вырезать среднего человека, если вам это нравится. (ПРЕДУПРЕЖДЕНИЕ: это всего лишь приблизительное предположение; передо мной нет компьютера с Windows, но я делал подобные вещи в прошлом.)

    УСТАНОВИТЬ СТРАНИЦУ = C: \ путь \ к \ pageant.exe

    УСТАНОВИТЬ PUTTY = C: \ путь \ к \ putty.exe

    УСТАНОВИТЬ PUTTYPRIVKEY = C: \ путь \ к \ priv \ key.ppk

    УСТАНОВИТЬ ПОЛЬЗОВАТЕЛЯ = someuser

    УСТАНОВИТЬ RPORT = 2345

    УСТАНОВИТЬ HOSTS = 141.161.1.1 141.161.1.2 141.161.1.3 host1.example.com host2.example.com

    REM # Активируйте закрытый ключ, это предполагает, что вы правильно защитили его паролем.

    "% PAGEANT%" "% PUTTYPRIVKEY%"

    FOR %% H в (% HOSTS%) do (

    ЭХО.

    ECHO Попытка SSH установить %% H. . .

    ЭХО.

    START "% PUTTY%" -ssh %% H:% RPORT% -2 -l% USER% -i "% PUTTYPRIVKEY%"

    )

Также есть возможность -m параметр PuTTY, который согласно документы, запускает сценарий для удаленного хоста после аутентификации. С правильными ключами и переадресацией агента (-a или -A; спросите, если вы не знаете), это может привести к нажатию кнопки или тоже.