гуевая ходилка на сервера ssh из списка


bliznezz аватар

bliznezz - Posted on 24 Сентябрь 2010

есть более 20 серверов, которые различаются одной цифрой на конце IP, и поэтому постоянно забываю кто из них кто. идея написать скрипт родилась из обсуждения в irc:

loord: парни подскажите. надо ходить по SSH на кучу серверов. через консоль удобно. но каждый раз надо помнить пароли и адреса серверов. подскажите есть ли какойто менеджер для такого.
loord: какбы гуевый клиент под ssh это глупо. но впадлу набирать пути каждый раз
мне бы так, чтобы перед глазами было список-наименований. взял одно тыкнул, или набрал и оно зашло.
seven loord: в венде есть удобный Xshell, помнит логины пароли к серверам
enemy loord: 1. авторизация по ключам

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

#!/bin/bash
ARGS=$(while read descr ip bred ; do echo -en "$descr $ip " ; done < ~/servers.lst)
TARGET=$(zenity --list --text="TEXT" --print-column=2  --column="name" --column="IP address" $ARGS)
[[ $? && "x"$TARGET != "x" ]] && ssh $TARGET

пример файла ~/servers.lst

localhost oleg@localhost
router  
proxy   squid@proxy
u1     эта надпись занесется в переменную bred
u2     и не будет использоваться в дальнейшем скрипте  
db2  
"текст с пробелами"  в первой колонке не поддерживается :(

что можно доделать:
1. ключ типа -l /path/to/servers.lst
2. последний позиционный параметр: go2server TARGET

1. Ставите KeepassX.
2. Заносите в него данные по Вашим SSH серверам.
3. Настраиваете в KeepassX комбинацию клавиш в настройках.
Всё!

Открываете терминал, нажимаете комбинацию клавиш, появляется окошко от KeepassX со списком SSH, выбираете нужный и KeepassX сам введёт всё что нужно. Моя строка в настройках авто-ввода в KeepassX выглядит так: ssh root@{URL}{ENTER}{DELAY 3000}{Password}{ENTER}

Да помнится у меня тоже был такой скрипт Ж:-)
Потом я открыл для себя автодополнение zsh из ~/.ssh/known_hosts
и настройку опций подключения для отдельных хоcтов ssh.

это немного не то, что я хотел. у меня в know_hosts более 400 хостов, а есть много "похожих", но различающихся в имени хоста парой букв, и последней цифрой. знаю имя (мнемоника) - надо вспомнить IP.

ну можно нагенерировать в ~/.ssh/config все эти хосты.
хотя на вкус и цвет.. Ж:-)

PAC, это то что Вы ищите!

remmina

реализован необходимый вам функционал в проекте remmina
сам только недавно начал активно пользоваться
http://remmina.sourceforge.net/screenshots.shtml

спасибо. похоже будет полезно.

А почему бы не использовать стандартные средства ssh для этого? http://the-bosha.ru/2009/12/20/fast-ssh/

ssh server1
ssh server2
и т.д.

да.. както не подумал. хотя сам писал сдеть типс по использованию ~/.ssh/config

стыдно :-)

ключи+~/.ssh/config+bash-completion

Я в свое время писал нечто подобное себе. :) Только еще в логи писал сколько времени я провел не том или ином сервере, что бы потом примерно оценит временные затраты. Довольно удобно было.

"временные затраты" можно посмотреть по команде last (последний столбец)

А почему бы вам не использовать профили гномовского терминала, так довольно удобно

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.