LINUX.ORG.RU
решено ФорумAdmin

Графические утилиты: 1) SSH HOSTS 2) add to passwordless sudo

 ,


0

1

Есть много хостов, на которые нужно интерактивно ходить рутом и удаленно дергать команды от рута.

Изначальные данные: адрес хоста и логин-пароль пользователя, который имеет право через sudo выполнять команды как root.

Т.к. добавлять надо много всяких хостов, делать это руками стрёмно.

Задача супер частая, так что может уже есть готовые решения, и не придется писать самому?

Нужны:

1) Графическая утилита, чтобы из графики можно было редактировать список хостов в ~/.ssh/config

Когда добавляется новый хост, нужно запускать ssh-copy-id (с параметром - ключом).

Хорошо бы чтобы утилита умела комментарии к хостам (чтобы вписать, чей это хост).

Хорошо бы чтобы утилита умела post-add хук, чтобы сделать скрипт, который производил бы разную магию после добавления хоста.

Хорошо бы, чтобы утилита реверс-инжинирила готовые конфиги, а не отображала в конфиг свой XML, ибо уже есть конфиг-файл на стопицот хостов.

2) Графическая утилита и скрипт, чтобы добавлять в passwordless sudo пользователя, имея его уже в sudo.

(скрипт - чтобы можно было дернуть его как post-add хук в предыдущей утилите).

Т.е. пыталась сделать sudo su, экспектом ловила приглашение пароля, плейнтекстом его туда вбивала, потом лезла в sudoers и добавляла username ALL=(ALL) NOPASSWD: ALL

Хорошо бы, чтобы утилита КОРРЕКТНО реверс-инжинирила готовый sudoers а не тупо добавляла в конец.

★★★★☆
Ответ на: комментарий от stevejobs

Вот ты на пустом месте проблемы придумываешь!

Пишешь все данные в БД sqlite3. Работать с ней можно прямо из баш-скрипта — соответственно, пишешь скрипт, который элементарно позволяет grep'ать нужную информацию из БД и выбирать хост для ssh соединения.

С гуйней будет дольше и совсем неудобно.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Конечно, это и придется делать, если готового решения нет.

Просто мне кажется, что это такая частая задача для админов с большим количеством серверов, что всё это давным-давно написано.

stevejobs ★★★★☆
() автор топика

Есть много хостов, на которые нужно интерактивно ходить рутом и удаленно дергать команды от рута.

ты хочешь систему администрирования или деплоя?

MikeDM ★★★★★
()
Ответ на: комментарий от stevejobs

Я наблюдал только использование bash-completion: пишет человек первую букву хоста, жамкает TAB и проверяет, что там дальше писать... Ну и, конечно, по ключам авторизация. Вот с рутовским паролем дело похуже обстоит: приходится либо держать на каждой машине одинаковый пароль, что небезопасно, либо как-то выдумывать, как привязывать к конкретному имени или айпишнику машины пароль. Скажем, "r00tp@ssw@rd_@_<имя хоста>". Но если кто допрет принцип — тоже хреново будет.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от MikeDM

у меня есть софтина. иногда она глючит на удаленном сервере. иногда из-за глюков софтины, но чаще всего - из-за неверной настройки сервера. конечная цель - система автоматизированный проверки корректности деплоя.

понятно что такую штуку никто за меня не напишет

сейчас я хочу отделаться хотя бы от всяких занудных вещей. Например, от необходимости самостоятельно помнить куда и скакими настройками я соединяюсь. Я хочу соединиться до Васи Пупкина, выбрать Васю из списка, давануть кнопку, а как уж меня соединит - пусть решает специальный софт. Лишь бы соединил куда нужно и дал мне там рутовые права. Вот такую софтину хочется.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от Eddy_Em

Пожелание сродни «очень надеюсь, что ты вскоре отправишься в крематорий»...

это, наверное, малоизвестный факт, но в Microsoft используют и Линуксы, и Маки, и даже BSD. И пишут кроме C# на Java и ObjectiveC.

вообще, MS в последнее время резко реформируется. Начать хотя бы с https://github.com/microsoft

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

Говно как ни прыскай духами и не посыпай специями, оно все равно говном останется!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от PolarFox

Сложней. Только там обычно "одмины-школоло" с завышенным ЧСВ.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от sdio

я понял, что правильной графической админки не существует и ее нужно писать самостоятельно на java с помощью javafx.

на чем писать низкоуровнево скрипты/плейбуки/рецепты - вопрос открытый, но к созданию админки он мало имеет отношения.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

Успехов тебе в это не нужном деле.

sdio ★★★★★
()
Ответ на: комментарий от Eddy_Em

И ты головой о жабку ударился?

Нет, просто баш менее удобен для подобных задач. Господь дал нам абстракции - почему бы не пользоваться ими?

tazhate ★★★★★
()
Ответ на: комментарий от tazhate

Не сравнимые вещи.

фанатизмом завоняло в треде.

sdio ★★★★★
()
Ответ на: комментарий от stevejobs

чтобы знать что писать в sshTAB, это надо вначале как-то отрыть в длинном списке

ты не умеешь давать хостам мнемонически понятные имена?

и очень неприятно копипастать потом найденное в отдельный терминал.

что и куда зачем копипастить? о_О

он открыл терминал, попытался залогиниться по ключу, не получилось - ssh-copy-id с просьбой ввести пароль, потом снова автоматический вход по ключу, попытка sudo su, не получается - добавление беспарольности в sudoers и снова попытка sudo su.

если тебе это нужно по нескольку раз в день - ты что-то делаешь неправильно. Если раз в неделю - то проблема высосана из пальца. И потом, как-то же этот хост появится в списке?

p.s. sudo -i

leave ★★★★★
()
Ответ на: комментарий от leave

если тебе это нужно по нескольку раз в день

мне это нужно не реже 20 раз в день - столько новых клиентов в день я успеваю обработать

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

И потом, как-то же этот хост появится в списке?

с помощью формочки «добавить новый хост» с полями ввода и кнопкой ОК, которую хотелось бы иметь в подобной софтине

вот ты видел программу «адресная книга» для людей, их адресов и телефонов? Что-то типа того, только с дополнительным полем - набором адресов серверов по SSH

в «адресной книге» для людей часто есть кнопочка «позвонить по скайпу» (в случае если к человеку привязан телефон). А тут нужна кнопка «получить рутовый доступ по SSH»

что и куда зачем копипастить? о_О

полчаса копаться в ~/.ssh/config, потом найдя нужный хост выделить его мышкой, скопировать в буфер обмена, открыть новый терминал, написать «ssh », вставить из буфера, enter, потом проделать еще кучу манипуляций по прописыванию рутового доступа и авторизации по ключу, если их еще нет.

да, это нужно сделать всего пару десятков раз в день, но это раздражает

и таких вещей еще много. Всех их надо автоматизировать.

есть золотое правило номер 1: если какое-то действие вручную повторяется больше 2 раз, его нужно автоматизировать. Если это программный код, то нужно отрефакторить повторяющееся действие в отдельную функцию или метод. Если это админинг - то действие нужно упаковать в скрипт.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

полчаса копаться в ~/.ssh/config, потом найдя нужный

По какому критерию ищется хост?

потом проделать еще кучу манипуляций по прописыванию рутового доступа

если ты от заказчика получешь не рутовый аккаунт, то sudo уже должно быть прописано. Если получаешь root'a, то добавить юзера в sudoers, плевое дело. Короче, что-то чем дальше по треду, тем тебя труднее понимать (в смысле, где проблема) или у тебя в корне не верный (не оптимальный) подход к администрированию.

sdio ★★★★★
()
Последнее исправление: sdio (всего исправлений: 1)
Ответ на: комментарий от sdio

По какому критерию ищется хост?

обычно по фамилии владельца, названию его организации, имени одного из веб-сайтов на этом сервере

то sudo уже должно быть прописано

рутового аккаунта нет. Есть не рутовый, но находящийся в sudoers, и требующий пароля на sudo. Есть собственно пароль. Нужно вход по паролю превратить во вход по ключу. Sudo с паролем превратить в sudo без пароля (так нужно для скриптов). Возможно запустить какие-то готовые скрипты из стандартного набора.

плевое дело

дело в том, что я этим делом не хочу заниматься вообще совсем. Я хочу щелкнуть мышкой по IP сервера (а лучше - по имени владельца сервера, обычно у человека только 1 сервер и мне нах не сдалось видеть его IP), а дальше оно уже пусть само всё настраивает. После щелчка мышкой я хочу увидеть распахнувшийся терминал, в котором открыт bash от рута. Очень простое желание.

stevejobs ★★★★☆
() автор топика
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от stevejobs

обычно по фамилии владельца, названию его организации, имени одного из веб-сайтов на этом сервере

Можно сделать линк на ssh-argv0 типа Vasea_Pupkin-GazProm-website.ru

и запись в .ssh/config (с Host Vasea_Pupkin-GazProm-website.ru)

Тогда в ком.строке напишешь пару букв нажмешь ТАБ и поехали.

рутового аккаунта нет. Есть не рутовый, но находящийся в sudoers, и требующий пароля на sudo. Есть собственно пароль. Нужно вход по паролю превратить во вход по ключу. Sudo с паролем превратить в sudo без пароля (так нужно для скриптов).

В гуйне все-равно придется ввести все эти данные, так что "в один клик" сделать ЗАИПИСЬ не получится. По-крайней мере это ничуть не лучше скрипта give-me-root-access user1 password1 user2 ... set-key-auth ...

Всё это может быть сделано одним скриптом add-new-server param1 param2 ... Vasea_Pupkin-GazProm-website.ru ...

sdio ★★★★★
()
Последнее исправление: sdio (всего исправлений: 1)
Ответ на: комментарий от sdio

Да, только мне удобнее кликать мышкой в списке, чем набирать что-то в консоли. И уж тем более гораздо удобней искать в специально заточенной на это софтине, чем в каком-нибудь виме.

Тогда в ком.строке напишешь пару букв

каких букв?

вот в твоем примере: Vasea_Pupkin-GazProm-website.ru

если ты знаешь компанию, но не знаешь имени владельца, то

ssh Gazprom[[TAB]] не выведет вообще ничего

т.е. нужно открывать в виме ~/.ssh/config и копаться в нем

пришли с чего начали

stevejobs ★★★★☆
() автор топика
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от stevejobs

Сделай еще линк, это не дорого GazProm-website.ru-Vasea_Pupkin

мне удобнее кликать мышкой в списке

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

sdio ★★★★★
()
Ответ на: комментарий от stevejobs

понятно что такую штуку никто за меня не напишет

Давно уже все написано. =)

MikeDM ★★★★★
()
Ответ на: комментарий от stevejobs

2) и разрешать это нельзя, вдруг какой-нибудь дибил начнет брутить рутовый акк. всем же известно, что рутовый акк точно существует.

Ну и что он там набрутит? Ничего.

xtraeft ★★☆☆
()
Ответ на: комментарий от xtraeft

а если пароль qwe123 (true story - пароль очень похожий на этот используют в одной крупной конторе, полагаясь на фаервол. это не наши клиенты :)

stevejobs ★★★★☆
() автор топика
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от tazhate

Два чаю.

http://express42.com/meetup/cm-battle.html

С 01:20 дядька про ансибль рассказывает. Очень категорично, прям как здесь любят. И интро примерно такое же кстати: «у меня миллион хостов, хочу везде своё окружение».

Hoodoo ★★★★★
()
Ответ на: комментарий от stevejobs

полчаса копаться в ~/.ssh/config, потом найдя нужный хост выделить его мышкой, скопировать в буфер обмена, открыть новый терминал, написать «ssh », вставить из буфера, enter

что за бред я читаю?

$ ssh horn<TAB>
hornov.site    horns_and_hoofs.gw    horns_and_hoofs.mail    horns_and_hoofs.web.intra      horns_and_hoofs.web.old     horns_and_hoofs.web.site
И ничего никуда не надо копипастить.

leave ★★★★★
()
Последнее исправление: leave (всего исправлений: 1)
Ответ на: комментарий от stevejobs

Sudo с паролем превратить в sudo без пароля (так нужно для скриптов)

этим должна заниматься cms.

Есть не рутовый, но находящийся в sudoers, и требующий пароля на sudo
терминал, в котором открыт bash от рута

т.е. sudo ты в принципе не признаешь, кроме как средство получить рутшелл?

leave ★★★★★
()
Ответ на: комментарий от leave

Дядька, а ты юзал? Ансиблу нужен только питон на удаленной машине. Питон и так из коробки везде сейчас

tazhate ★★★★★
()
Ответ на: комментарий от tazhate

А как ты первый раз подключишься в случае ТС?

leave ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.