Представим ситуацию – есть сервер, соединение с которым должно быть всегда активным, даже если в shell нет никакой активности. Или же должен постоянно работать туннель ssh. Обычный ssh при разрыве соединения не производит его переустановку (разве что можно посылать alive-пакеты, но это действует для активных сессий: ssh -o ServerAliveInterval=10 host.com).

Вот, например, такую картину я вижу постоянно при соединении со своим сервером, когда сессия неактивна долгое время:

$ ssh host.com
Linux host.com 2.6.32.12-linode25 #1 SMP Wed Apr 28 19:25:11 UTC 2010 i686

20:51 [ctrld@host][~]
17:14 [ctrld@host][~] Write failed: Broken pipe

Через какое-то время я получаю “Write failed: Broken pipe”. В данном случае переподключиться вручную просто, но всегда найдётся ситуация, когда это сделать гораздо труднее.

(more…)

Tagged with: developerssh 

Давно я не писал про преодоление защиты сетей. Наверстываю.

Все разы, когда я ездил за границу, в отелях практически всегда был нормальный доступ по WiFi на базе NAT (в основном через transparent proxy для авторизации, но никаких телодвижений по настройке прокси со стороны клиента не требовалось). Только два раза я натыкался на “тупые” конфигурации – один раз в московском отеле, другой – в Амстердаме. Для работы приходилось прописывать прокси, руководствуясь информацией, полученной на receiption.

Конечно же, ssh через web-прокси не работает. Как назло во втором случае мне было очень нужно попасть на мой сервер. Я собирался выкручиваться путём записи на свой сайт скрипта, обеспечивающего доступ к shell, например, PHP and AJAX shell console, но @andy_shev мне порекомендовал corkscrew, утилиту для туннелирования SSH поверх HTTP-прокси. Ею я и воспользовался, за что Andy огромное спасибо.

(more…)

Tagged with: networksecurityssh 

Много ли вы работаете с удалёнными хостами по SSH? Если да, то вы уже привыкли набирать команду вида:

$ ssh 10.10.10.10

Если для немного большей защиты ssh-сервер находится на нестандартном порту, то команда слегка усложняется:

$ ssh -p 12345 10.10.10.10

А если имена пользователей не совпадают на разных системах, то команда ещё усложняется:

$ ssh -p 12345 username@10.10.10.10

(more…)

Tagged with: dropboxssh 

Достаточно давно @andy_shev посоветовал мне уделить внимание переменным окружения, выставляемые при установлении ssh-соединения. Тогда мне это не показалось чем-то важным практически, но сегодня пришло время.

Проблема, с которой я столкнулся, оказалась странной. В Snow Leopard наконец-то Terminal.app стал нормально обрабатывать русские буквы в кодировке UTF-8, раньше же были проблемы с их отображением (они или “бились”, или же преобразовывались в набор восьмеричных чисел). Я вздохнул облегчённо – наконец-то я смог при работе в консоли комфортно писать по-русски.

(more…)

Tagged with: ssh 

Туннелирование SSH

Предположим типичную для системного администратора задачу – есть сервер где-то в глубине сети, на который нужно попасть, предположим, по http, но консольный lynx/elinks не подходит, а нужен именно Safari/Firefox/Chrome (например, сайт на flash или нужна Java). Причём прямого доступа с ноутбука из Интернет на этот сервер нет, но есть “jumpbox” (сервер, исключительно через который открыт доступ по ssh в закрытую сеть). У меня такая ситуация была, когда нужно было попасть на IP-KVM внутри закрытой firewall’ом сети (я использовал ssl, но здесь для простоты покажу на примере порта 80).

(more…)

Tagged with: securityssh 

Как я сказал ранее, к аутентификации по публичным ключам нужно подходить ответственно. Ставить пустой passphrase грозит компрометацией ваших удалённых хостов. А каждый раз вводить passphrase не всегда возможно. Для того, чтобы достигнуть разумного компромиса, используется ssh-agent. Это программа, хранящая приватные ключи, используемые для аутентификации по публичным ключам RSA/DSA.

(more…)

Tagged with: ssh 

Если вы часто заходите на внешние сервера по SSH, или же у вас запускаются процессы, требующие сделать что-то на удалённом сервере, то вместо постоянного ввода пароля можно настроить аутентификацию в SSH по публичным ключам. К этому нужно подходить с умом и осторожностью – если у вас украдут ключи из каталога ~/.ssh, и у вас не настроен passphrase, то злоумышленники получат доступ ко всем вашим серверам. Лучший метод – установка passphrase во время генерации ключа или использование ssh-agent.

Давайте рассмотрим, как настроить аутентификацию.

(more…)

Tagged with: ssh 
© 2010 The Apple Geek