d51x.ru - личный блог

О самом разном из своей жизни

Удаленный доступ. SSH соединение.11 сентября 2010

Читало: 12782Рубрика: Разное

Схема SSH-соединенияКак и обещал, расскажу Вам как я настраивал ssh соединение между рабочим и домашним компьютерами.

Почему ssh, а не telnet? Потому что SSH - это защищенное соединение. SSH расшифровывается как Secure SHell - защищенная командная строка. Все передаваемые данные шифруются в отличие от telnet.

И так, мой домашний компьютер будет в роли сервера. На нем будет установлен ssh-сервер.

Мой домашний компьютер управляется операционной системой Ubuntu 10.04.

Под сервером мы понимаем удаленную машину к которой будем подключаться через ssh-клиента.

И так, будем настраивать сервер.

Нам необходимо установить openssh-server. В Ubuntu 10.04 он установлен по-умолчанию. Если не установлен, то надо установить либо через Synaptic, либо через командную строку:

sudo apt-get install openssh-server

Далее запустить ssh-сервер (sshd):

/etc/init.d/ssh start

OpenSSH сервер можно конфигурировать, используя файл /etc/ssh/sshd_config. В подробности вдаваться не буду. Нам базовых настроек достаточно.

Под windows тоже можно установить OpenSSH-сервер.

Мне этот вариант не интересен, т.к. я использую linux, поэтому его рассматривать не буду.

Как видно, в настройке ssh-сервера нет ничего сложного. На самом то деле нам даже ничего не пришлось настраивать. :)

Теперь мы можем пробовать подключаться к домашнему компьютеру из сети, если имеем выделенный IP или у нас настроен динамический dns.

В linux есть по-умолчанию ssh-клиент.

Под windows надо клиента искать. Самым наилучшим на мой взгляд (и не только мой) является Putty.

Для подключения из linux в терминале наберем следующее:

ssh myhost.dyndns.org -l username

Ключ -l username позволяет автоматически залогиниваться под именем username, останется только ввести пароль.

Для подключения из Windows используем Putty. В настройках нет ничего сложного.

Вводим имя хоста и нажимаем кнопку Open.

Как в первом (ssh), так и во втором (putty) случае, перед нами откроется терминал удаленного компьютера, т.е. нашего сервера.

На этом все. Теперь мы можем подключаться к домашнему компьютеру по ssh.


Хотя нет, я не могу этого сделать с работы, потому что у меня там закрыт 22 порт.

В этом случае можно настроить openssh-server на другой порт, например, 80 или 443.

Для этого в файле /etc/ssh/sshd_config находим строку Port 22 и изменяем порт на 80 или 443 (какой хотим использовать).

Затем перезапускаем sshd:

/etc/init.d/ssh restart

Теперь можно подключаться так:

ssh myhost.dyndns.org -p 443 -l username

А если через putty, то в настройках рядом с хостом изменить порт.

Теперь мы можем подключаться к серверу по ssh на нестандартном порту.


Хотя опять я не могу этого сделать. проблема заключается в том, что у меня есть роутер (adsl модем в режиме роутера), и он раздает интернет на 2 компьютера. В данном случает нам нужно на роутере пробросить порт до нашего сервера.


Расскажу на примере своего роутера (ADSL модема).

Для этого заходим в админку модема, я захожу так - в браузере набираю адрес  192.168.0.1 и попадаю в веб-интерфейс роутера.

Там нахожу раздел Advanced Setup -> NAT -> Virtual Servers. В нем делаю проброс портов.

Указываю внешний порт как 443, куда будет коннектится ssh-клиент. Указываю внутренний 22 (можно 443, тогда в конфиге sshd_config надо тоже 443 порт указать вместо 22). Указываю IP адрес сервера в локальной сети, в данном случае это 192.168.0.2

Сохраняю настройки.


Все! Вот теперь у меня есть доступ с работы к домашнему компьютеру, который находится за роутером. Главное чтобы наш сервачек был включен.

PS В следующий раз я расскажу, как настраивал vnc соединение, создавал тунели для закрытых портов через ssh, а так же как запускал нудаленно и выводил на клиенте GUI-приложения.