SSH-шлюзы КОМПОТ    

Время последней проверки: 14.10.2019 06:48:43
ШлюзIP-адресСостояние
venus.phys.petrsu.ru172.20.175.60ОК
"Отпечаток" RSA ключа: 3a:12:77:a3:8d:83:c8:49:fd:f7:66:e4:ad:ae:0e:44
mars.phys.petrsu.ru172.20.180.10ОК
"Отпечаток" RSA ключа: 3a:12:77:a3:8d:83:c8:49:fd:f7:66:e4:ad:ae:0e:44
saturn.phys.petrsu.ru195.209.249.163ОК
"Отпечаток" RSA ключа: 73:f5:2b:c0:bc:50:78:da:37:36:a2:0c:ba:c4:68:b6

Общие сведения

SSH (Secure Shell) - это набор стандартов и соответствующий им сетевой протокол, обеспечивающий безопасный канал связи между локальным и удалённым компьютером. SSH используется:

В УЛК ФТИ имеется несколько SSH-серверов с авторизацией через КОМПОТ. Эти сервера могут использоваться для безопасного доступа к AFS-томам пользователей. Пользователь, пройдя процедуру аутентификации SSH-сервера, автоматически получает AFS-токен и может работать со своим томом, как с домашней папкой, на удалённом компьютере, к которому он подключился.

SSH допускает использование различных способов аутентификации. В системе КОМПОТ следует использовать интерактивный (keyboard interactive) способ. Сервер посылает приглашение для ввода некоторого секрета (пароля), пользователь набирает на клавиатуре этот секрет, который затем отсылается серверу для проверки. Это означает непосредственное указание логина и пароля по запросу.

При вводе символы пароля на экране не отображаются.

 

Работа с SSH под Linux

Для входа на удалённый SSH-сервер и выполнения команд на нём, следует использовать команду ssh:

ssh -l pupkin mars.phys.petrsu.ru
или
ssh pupkin@mars.phys.petrsu.ru
где вместо pupkin вы подставляете имя вашей учётной записи в КОМПОТ, а mars.phys.petrsu.ru - один из SSH-шлюзов КОМПОТ (при необходимости вместо доменного имени можно указать IP-адрес).

При первом подключении к выбранному SSH-серверу программа запросит у вас подтверждение о подлинности предоставленного сервером открытого ключа:

The authenticity of host 'mars.phys.petrsu.ru (172.20.180.10)' can't be established.
RSA key fingerprint is 3a:12:77:a3:8d:83:c8:49:fd:f7:66:e4:ad:ae:0e:44.
Are you sure you want to continue connecting (yes/no)?

Если "отпечаток" ключа совпадает с указанным на данной странице, следует набрать yes и нажать Enter. Ответив на этот вопрос иным образом (например, просто нажав Enter), программа посчитает, что подлинность удалённого сервера вызывает у вас сомнение и разорвёт соединение:

Host key verification failed

Если ключ вами опознан и принят, программа сохранит копию открытого ключа сервера на вашем локальном компьютере в файле ~/.ssh/known_hosts:

Warning: Permanently added '172.20.180.10' (RSA) to the list of known hosts
и при последующих подключениях будет сравнивать предоставляемый сервером ключ с этой локальной копией, не требуя у вас подтверждения. Если впоследствии предоставленный сервером ключ будет отличаться от сохранённого в кэше, SSH-клиент выдаст предупреждающее сообщение и разорвёт соединение:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
d1:33:da:df:a6:b6:db:54:e6:37:77:25:b0:bc:96:5e.
Please contact your system administrator.
Add correct host key in ~/.ssh/known_hosts to get rid of this message.
Offending key in ~/.ssh/known_hosts:1
RSA host key for 172.20.180.10 has changed and you have requested strict checking.
Host key verification failed.
В таком случае следует обратиться к администраторам для выяснения причин этой ситуации.

Если вы собираетесь запускать на удалённой машине приложения с графическим интерфейсом, необходимо настроить SSH на туннелирование протокола X11 (SSH X11 Forwarding). Зачастую и SSH-клиент, и SSH-сервер изначально настроены на эту возможность, в чём можно убедиться, выполнив команду:

echo $DISPLAY
localhost:10
Если же переменная DISPLAY после входа на удалённую машину не определена (содержит пустое значение), при повторном запуске SSH-клиента следует указать в командной строке опцию -X:
ssh -X pupkin@mars.phys.petrsu.ru

Для перемещения файлов между машинами можно использовать подсистему SFTP. Для этого используется команда:

sftp pupkin@mars.phys.petrsu.ru
Connecting to mars.phys.petrsu.ru...
pupkin@mars.phys.petrsu.ru's password:
sftp>

Установив соединение с SSH-сервером, команда sftp предоставляет пользователю командный интерфейс сходный с интерфейсом FTP:

ls  просмотр текущего каталога на удалённой машине
lls  просмотр текущего каталога на локальной машине
cd path  смена текущего каталога на удалённой машине
lcd path  смена текущего каталога на локальной машине
pwd  вывод имени текущего каталога на удалённой машине
lpwd  вывод имени текущего каталога на локальной машине
get file  загрузить файл с удалённой машины на локальную
put file  поместить файл с локальной машины на удалённую

Другой интерфейс для передачи файлов предоставляют различные программы-оболочки, например, Midnight Commander, при этом используется подсистема FISH. Для соединения с удалённым компьютером нужно выполнить команду перехода в каталог cd (меню "Файл"/"Quick cd", клавиши ALT-c), имя каталога задаётся в следующем формате:

/#sh:pupkin@mars.phys.petrsu.ru
В конце можно указать каталог на удалённой машине, например:
MC, смена каталога
После чего в командной строке появляется приглашение SSH для ввода пароля:
MC, запрос пароля
В результате на текущей панели будет открыт указанный каталог (если не указан, то домашний или корневой). Если после ввода пароля содержимое экрана MC будет смещено, для восстановления можно нажать CTRL-o два раза.

Вместо cd можно использовать команду "Shell-соединение" меню "Левая/Правая панель". В этом случае в диалоговом окне MC задаётся только имя пользователя и имя хоста:

MC, shell-соединение

Аналогичная возможность существует в файловом менеджере KDE - Konqueror. В строке адреса необходимо набрать имя SSH-хоста с указанием протокола FISH, опционально можно указать имя пользователя:

fish://pupkin@mars.phys.petrsu.ru
При подключении к указанной машине Konqueror запросит необходимые данные для аутентификации:
Konqueror, протокол FISH

 

Работа с SSH под Windows

Компания Microsoft не предоставляет собственных средств для работы с протоколом SSH и его подсистемами. Наиболее популярным SSH-клиентом для Windows является PuTTY. Этот пакет включает собственно терминальную программу (putty), поддерживающую протокол SSH, SFTP-клиент (psftp) и ряд вспомогательных утилит.

Для входа на удалённый SSH-сервер и выполнения команд на нём, следует использовать программу putty. При запуске открывается диалог настроек:

Putty, сессия
В большинстве случаев для установки соединения с сервером достаточно набрать его доменное имя или IP-адрес в соответствующем поле, выбрать протокол SSH (при этом порт автоматически поменяется на 22) и нажать кнопку "Open".

Если при работе с терминалом некорректно отображаются русские буквы, следует проверить настройки внешнего вида и перекодировки. Шрифт выбирается в категории Window/Appearance - "Set the font used in the terminal window":

Putty, внешний вид
Нажав на кнопку "Change...", вы вызываете стандартный диалог выбора шрифта, в котором важно не забыть правильно выбрать набор символов - "кириллический" (по умолчанию может стоять "западный"):
Putty, шрифт
На SSH-шлюзах УЛК ФТИ в Linux используется кодировка UTF-8, поэтому необходимо убедиться, что возможность перекодировки в PuTTY включена правильно. На вкладке Window/Translation опция "Received data assumed to be in which character set" должна быть установлена в UTF-8:
Putty, перекодировка

PuTTY также поддерживает SSH X11 Forwarding (туннелирование протокола X11 для запуска на удалённом компьютере графических приложений с отображением их графического интерфейса на локальном X-сервере). Однако чтобы использовать эту возможность, необходимо установить X-сервер для Windows (в пакет PuTTY не входит). Существует бесплатный X-сервер XFree86, версия для Windows которого распространяется в составе пакета CygWin. Следует отметить, что пакет CygWin содержит портированную для Windows реализацию OpenSSH-клиента (и сервера), которая может быть более удобна в использовании. Однако установка и настройка этого пакета могут оказаться нетривиальными для неопытного пользователя. Если вы всё же собираетесь включить SSH X11 Forwarding в PuTTY, нужная опция находится в категории Connection/SSH/Tunnels:

Putty, туннелирование

Если при подключении к выбранному SSH-хосту вам приходится менять стандартные настройки PuTTY, их можно сохранить как "сессию" (при этом вам больше не придётся набирать доменное имя или IP-адрес этого хоста). В текстовом поле "Saved Sessions" вы указываете имя для новой сессии и нажимаете кнопку "Save". Впоследствии восстановить настройки сохранённой сессии и подключиться к данному хосту можно будет по двойному щелчку на этом имени в списке сохранённых сессий.

Putty, сессии

При первом подключении к выбранному SSH-серверу программа запросит у вас подтверждение о подлинности предоставленного сервером открытого ключа:

Putty, проверка ключа

Если "отпечаток" ключа совпадает с указанным на данной странице, следует нажать "Да", При этом программа сохранит копию открытого ключа сервера на вашем локальном компьютере в реестре (HKEY_CURRENT_USER\ Software\ SimonTatham\ PuTTY\ SshHostKeys\) и при последующих подключениях будет сравнивать предоставляемый сервером ключ с этой локальной копией, не требуя у вас подтверждения. Если впоследствии предоставленный сервером ключ будет отличаться от сохранённого в кэше, PuTTY выдаст предупреждающее сообщение:

Putty, проверка ключа
Наиболее безопасный вариант в этом случае - кнопка "Отмена". Обратитесь за разъяснением к администраторам.

При подключении к SSH-серверу PuTTY запрашивает у вас логин и пароль, после чего вы получаете доступ к командной строке удалённой машины:

Putty, терминал

Для перемещения файлов между машинами можно использовать программу psftp.

Установив соединение с SSH-сервером, команда sftp предоставляет пользователю командный интерфейс сходный с интерфейсом FTP (см. выше)

Psftp

Вместо командного интерфейса SFTP можно использовать плагин-обёртку для файлового менеджера FAR Manager - WinSCP или аналогичный. Плагин WinSCP уже содержит пакет PuTTY. Установив WinSCP в каталог плагинов (%ProgramFiles%/Far/Plugins), вы сможете работать с ресурсами удалённого компьютера по протоколам SFTP/SCP. Чтобы подсоединиться к удалёному компьютеру, нажмите ALT-F1 или ALT-F2 и выберите плагин WinSCP:

FAR, выбор плагина

Для начала нужно создать сессию для подключения к удалённому компьютеру. Сделайте активной панель WinSCP и нажмите SHIFT-F4:

FAR, настройки сессии

Для новой сессии достаточно указать имя хоста и имя пользователя. Пароль может быть запрошен позднее. SSH-Шлюзы КОМПОТ поддерживют и SCP, и SFTP, поэтому можно выбрать любой протокол.

На следующем этапе будет предложено сохранить сессию под каким-нибудь именем.

FAR, имя сессии

Для установления соединения нужно выбрать имя сессии в списке и нажать Enter.

FAR, список сессий

Если вы устанавливаете соединение с сервером таким образом в первый раз, WinSCP запросит у вас подтверждение о подлинности предоставленного сервером открытого ключа:

FAR, проверка ключа сервера

После этого запрашивается пароль, если он не был сохранён в сессии. В случае успешной аутентификации на панели FAR будет открыта файловая система удалённой машины.