SSH (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.