пятница, 7 сентября 2012 г.

ssh: укорачиваем команду

Уже как-то писал про то, как удалось сократить длину некот. git команд за счёт настройки хостов в ssh_config. Решил на ноуте сделать так же для наших хостов, чтобы не набивать "$ ssh username@host.domain.org".
Так, как писать секции самому неохота, сделал скриптик sshgen.sh, вызываемый в цикле:

#!/bin/bash
if [ $# -eq 0 ]; then
        echo "Usage: sshgen.sh host domain user"
else
        echo "Host $1"
        echo "        User $3"
        echo "        HostName $1.$2"
fi
Работает так:
$ for a in {1..7};do for b in vps$a;do ./sshgen.sh $b domain.com username; done; done
Host vps1
        User username
        HostName vps1.domain.com
Host vps2
        User username
        HostName vps2.domain.com
Host vps3
        User username
        HostName vps3.domain.com
Host vps4
        User username
        HostName vps4.domain.com
Host vps5
        User username
        HostName vps5.domain.com
Host vps6
        User username
        HostName vps6.domain.com
Host vps7
        User username
        HostName vps7.domain.com
 Полученный вывод суём в ssh_config и вместо "$ ssh username@host.domain.org" пишем "$ ssh host"

2 комментария:

Satan come and kill your family and you комментирует...

Привет. Конфиг ссх штука ок, но у меня чувство, что ты что-то делаешь не так.
Если у тебя хосты примерно в одном домене, чем search domains в resolv.conf не подходит? Эффект в описанном примере будет тот же.

AccessD комментирует...

1. У меня около 8-10 точек, откуда я работаю, поэтому resolv.conf часто меняется NetworManager. Ставить иммун не хочу - манагер пищать начнёт.

2. username. Исторически сложилось, что мой username отличается от рабочего. Менять на своих железках ник на рабочий не хочу - работа приходит и уходит )

Т.е. при указании домена в резолве один фиг юзернейм писать.

3. Есть ноды с одинаковым хостнеймом, но разным доменом.

Собственно, на рабочем компе у меня юзернейм совпадает, все домены в резолв вбиты - эффект такой же, кроме пункта 3.