У меня есть локальная машина с 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-входа, я бы предложил следующее.
Настройте ключи SSH (я предполагаю, что это доступно вам). Это самый простой учебник, который я знаю, объясняет это с помощью PuTTY.
Настройте командный файл вот так. Вы можете использовать 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
; спросите, если вы не знаете), это может привести к нажатию кнопки или тоже.