[shell] Разные трюки с ssh

1) Узнать скорость соединения между хостами:

$ yes | рv | ssh host.com "cat > /dev/null"

PS. Для этого нужно установить утилиту pv

2) Удобный анализ tcpdump трафика:

$ ssh root@remotehost tcpdump -w - 'port !22' | wireshark -k -i -

этим мы анализируем дамп на хосте remotehost.

3) Запуск команды на нескольких серверах

$ echo "uptime" | pee "ssh host1" "ssh host2" "ssh host3"

4) Сравнение файлов на разных серверах:

$ diff <(ssh host1 cat /path/to/file1) <(ssh host2 cat /path/to/file2) 

5) Просмотр логов в realtime с разных серверов:

$ multitail -l 'ssh host1 "tail -f /path/to/log1"' -l 'ssh host2 "tail -f /path/to/log2"'

6) Установка пакетов удалённой машины:

# ssh remotehost 'dpkg --get-selections' | dpkg --set-selections && dselect install

7) Выполнение скрипта на удалённой машине без его копирования на онную.

$ ssh -Т user@remotehost < script.sh

8 ) Создание туннеля

В /etc/ssh/sshd_config выставляем такие значения

PermitRootLogin yes
PermitTunnel yes

Перечитываем конфиг на сервере. На клиенте запускаем команду

$ssh -w 0:0 root@remote_host

Этим мы создадим туннель tun0 как на клиенте, так и на сервере. Дальше нужно задать IP-адреса на клиенте (первая команда) и на сервере (вторая команда) соответственно:

#ifconfig tun0 10.0.0.2 pointopoint 10.0.0.1
#ifconfig tun0 10.0.0.1 pointopoint 10.0.0.2

Дальше можно настраивать маршрутизацию.

PS Многое почерпнул из журнала Хакер.

[shell] Разные трюки с ssh: 2 комментария

  1. angel2s2

    Ооох :))) Респект, коллега 🙂 П. 4 и 5 часто использую, но вот такой вариант в голову не приходил :))

    PS: Ну раз в п.1 написано, что надо ставить, то не помешает добавить: 😉
    Для п.3 в Debian/Ubuntu нужно поставить пакет moreutils, для RedHat/CentOS, если не ошибаюсь, — perl-List-MoreUtils.
    Д п.5 нужен пакет multitail (в deb и rpm одинаково называется).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *