Sibilia octopress blog

notes on memory.

SSH трюки

| Comments

Проксирование соединения

Допустим у вас есть необходимость подключаться к удалённому серверу host-end, к которому прямого доступа нет, и есть ssh доступ к серверу host-forw, с которого есть доступ к host-end. Тогда для удобства можно настроить проксирование ssh соединения. В результате, вместо последвательного подключения к host-forw -> host-end, можно будет подключаться сразу к host-end и соединение будет проксироваться через host-forw автоматически. Для этого, нужно дбавить в конфиг ssh (~/.ssh/config):

1
2
3
4
5
6
7
8
ForwardAgent yes
Host host-end
    HostName host-end
    Port 22
    User admin
    ProxyCommand ssh admin@host-forw nc %h %p
    Compression yes
    ForwardX11 no

Из примера видно, что можно все необходимые параметры прописать, а их кстати немало (man ssh_config). Теперь для подключения достаточно набрать:

1
ssh host-end

Просмотр сетевого трафика с удалённого сервера

На удалённом сервере зачастую есть сетевой сниффер tcpdump. Но снимать трафик на нём, затем переносить на свой комп для анализа в wireshark неудобно, намного проще направить поток с tcpdump сразу себе в wireshark:

1
ssh root@host-end -i eth0 -w - 'port !22' | wireshark -k -i -

Копирование файлов с удалённого сервера на другой, через локальный комп

Необходимо перекинуть файлы с одного сервера на другой, но они друг друга не видят. Тогда можем перекинуть с локального, котой их обоих видит:

1
ssh root@host1 "tar -cf - /dir-copy" | ssh root@host2 "tar -xf - /dir-past/"

Запуск локального скрипта на удалённом сервере

1
ssh -T user@host < script.sh

Comments