Хитрости SSH

ssh tricksSSH (Secure SHell — "безопасная оболочка") не так проста как кажется на первый взгляд и обладает довольно мощными средствами безопасного соединения. Например с помощью ssh возможно делать proxy, туннельные соединения, передавать звук, видео, сжимать данные, передаваемые в потоке ssh и др.

Создание socks proxy

Достаточно иметь логин ssh на сервер у которого есть прямой доступ в инет.
1. На локальном компе выполняем команду

ssh -CND 1080  login@server

при этом после набора пароля консоль висит.

  • 1080 - порт на локальном компе, через который мы и будем выходить в инет
  • C - нужна здесь для сжатия данных
  • N - для того чтобы не было записи в wtmp
  • D - благодаря этому ключу всё и работает.

2. Настраиваем браузер

В строке, где вбивается socks proxy написать locаlhost port 1080, ну и поставить галочку напротив socks5

Еще говорится, что в конфиге sshd.conf должна быть такая строчка:

AllowTcpForwarding yes

но у меня и так все заработало

Беспарольное соединение SSH, если ssh соединение уже установлено к данному хосту

Смысл в том, что если мы уже соединены в какой-нибудь сессии с одним хостом, то вторая ssh сессия на этот же хост не будет запрашивать пароль.

Создаём файл /home/user/.ssh/config и в этот файл добавляем строки


host *
controlmaster auto
controlpath /tmp/ssh-%r@%h:%p

В данном случае "host *" означает что беспарольное соединение будет применяться ко всем хостам. Если хотите то можно менять маску по Вашему усмотрению.

TCP туннели ssh

Очень часто бывает ситуация когда нужно соединить 2 машины находящиеся в разных сетях. Например, когда надо соединиться по rdp с машиной находящейся за NAT, а перед NAT машины нас разделяет еще и интернет. В таких случаях очень удобно использовать ssh туннели. Выполняем команду


ssh -L 1234:192.168.21.200:3389 -l user host_name

в данном случае

  • 1234 — порт на локальной машине к которому надо соединяться, чтобы попасть на порт машины в удалённой сети.
  • 192.168.21.200:3389 — ИП адрес и RDP порт машины в удалённой сети.
  • -l user host_name — имя пользователя и ИП (или domain name) адрес сервера который находится в удалённой сети и смотрит в интернет. Через него мы собственно и прокидываем туннель.

После набора этой команды и стандартного ввода пароля ssh можно соединяться по rdp. Только в качестве rdp сервера будет localhost а порт 1234.

Статья просмотрена 9 549 раз
Запись опубликована в рубрике SSH, Программы с метками , , . Добавьте в закладки постоянную ссылку.

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

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>