Шлюз | IP-адрес | Состояние |
---|---|---|
mars.phys.petrsu.ru (i386) | 172.20.180.10 | ОК |
"Отпечаток" ключа: RSA: 3a:12:77:a3:8d:83:c8:49:fd:f7:66:e4:ad:ae:0e:44; ECDSA: 3GWVNuxWPxgO+rxr1NcN+RxP5KGcq/9IkUWRPiKSHWI | ||
saturn.phys.petrsu.ru (ia64) | 195.209.249.163 | ОК |
"Отпечаток" ключа: RSA: 73:f5:2b:c0:bc:50:78:da:37:36:a2:0c:ba:c4:68:b6; RSA: 9QIBZenfdq3/fPEut5qyjNF7Up8eyTXNBmbQytbEXsM |
Общие сведения
SSH (Secure Shell) - это набор стандартов и соответствующий им сетевой протокол, обеспечивающий безопасный канал связи между локальным и удалённым компьютером. SSH используется:
- для управления удалённым компьютером (выполнения команд на удалённом компьютере);
- для передачи файлов (подсистема SFTP (SSH File Transfer Protocol), SCP (Secure Copy) или FISH (File transfer over shell));
- для безопасного туннелирования других протоколов, например, X11 (т.е. запуск на удалённом компьютере графических приложений с отображением их графического интерфейса на локальном X-сервере).
В УЛК ФТИ имеется несколько 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В конце можно указать каталог на удалённой машине, например:
Вместо cd можно использовать команду "Shell-соединение" меню "Левая/Правая панель". В этом случае в диалоговом окне MC задаётся только имя пользователя и имя хоста:
Аналогичная возможность существует в файловом менеджере KDE - Konqueror. В строке адреса необходимо набрать имя SSH-хоста с указанием протокола FISH, опционально можно указать имя пользователя:
fish://pupkin@mars.phys.petrsu.ruПри подключении к указанной машине Konqueror запросит необходимые данные для аутентификации:
Работа с SSH под Windows
Компания Microsoft не предоставляет собственных средств для работы с протоколом SSH и его подсистемами. Наиболее популярным SSH-клиентом для Windows является PuTTY. Этот пакет включает собственно терминальную программу (putty), поддерживающую протокол SSH, SFTP-клиент (psftp) и ряд вспомогательных утилит.
Для входа на удалённый SSH-сервер и выполнения команд на нём, следует использовать программу putty. При запуске открывается диалог настроек:
Если при работе с терминалом некорректно отображаются русские буквы, следует проверить настройки внешнего вида и перекодировки. Шрифт выбирается в категории Window/Appearance - "Set the font used in the terminal window":
PuTTY также поддерживает SSH X11 Forwarding (туннелирование протокола X11 для запуска на удалённом компьютере графических приложений с отображением их графического интерфейса на локальном X-сервере). Однако чтобы использовать эту возможность, необходимо установить X-сервер для Windows (в пакет PuTTY не входит). Существует бесплатный X-сервер XFree86, версия для Windows которого распространяется в составе пакета CygWin. Следует отметить, что пакет CygWin содержит портированную для Windows реализацию OpenSSH-клиента (и сервера), которая может быть более удобна в использовании. Однако установка и настройка этого пакета могут оказаться нетривиальными для неопытного пользователя. Если вы всё же собираетесь включить SSH X11 Forwarding в PuTTY, нужная опция находится в категории Connection/SSH/Tunnels:
Если при подключении к выбранному SSH-хосту вам приходится менять стандартные настройки PuTTY, их можно сохранить как "сессию" (при этом вам больше не придётся набирать доменное имя или IP-адрес этого хоста). В текстовом поле "Saved Sessions" вы указываете имя для новой сессии и нажимаете кнопку "Save". Впоследствии восстановить настройки сохранённой сессии и подключиться к данному хосту можно будет по двойному щелчку на этом имени в списке сохранённых сессий.
При первом подключении к выбранному SSH-серверу программа запросит у вас подтверждение о подлинности предоставленного сервером открытого ключа:
Если "отпечаток" ключа совпадает с указанным на данной странице, следует нажать "Да", При этом программа сохранит копию открытого ключа сервера на вашем локальном компьютере в реестре (HKEY_CURRENT_USER\ Software\ SimonTatham\ PuTTY\ SshHostKeys\) и при последующих подключениях будет сравнивать предоставляемый сервером ключ с этой локальной копией, не требуя у вас подтверждения. Если впоследствии предоставленный сервером ключ будет отличаться от сохранённого в кэше, PuTTY выдаст предупреждающее сообщение:
При подключении к SSH-серверу PuTTY запрашивает у вас логин и пароль, после чего вы получаете доступ к командной строке удалённой машины:
Для перемещения файлов между машинами можно использовать программу psftp.
Установив соединение с SSH-сервером, команда sftp предоставляет пользователю командный интерфейс сходный с интерфейсом FTP (см. выше)
Вместо командного интерфейса SFTP можно использовать плагин-обёртку для файлового менеджера FAR Manager - WinSCP или аналогичный. Плагин WinSCP уже содержит пакет PuTTY. Установив WinSCP в каталог плагинов (%ProgramFiles%/Far/Plugins), вы сможете работать с ресурсами удалённого компьютера по протоколам SFTP/SCP. В свежих версиях FAR функции SFTP-клиента выполняет встроенный плагин NetBox. Чтобы подсоединиться к удалёному компьютеру, нажмите ALT-F1 или ALT-F2 и выберите плагин WinSCP/NetBox:
Для начала нужно создать сессию для подключения к удалённому компьютеру. Сделайте активной панель WinSCP/NetBox и нажмите SHIFT-F4:
Для новой сессии достаточно указать имя хоста и имя пользователя. Пароль может быть запрошен позднее. SSH-Шлюзы КОМПОТ поддерживют и SCP, и SFTP, поэтому можно выбрать любой протокол.
На следующем этапе будет предложено сохранить сессию под каким-нибудь именем.
Для установления соединения нужно выбрать имя сессии в списке и нажать Enter.
Если вы устанавливаете соединение с сервером таким образом в первый раз, WinSCP/NetBox запросит у вас подтверждение о подлинности предоставленного сервером открытого ключа:
После этого запрашивается пароль, если он не был сохранён в сессии. В случае успешной аутентификации на панели FAR будет открыта файловая система удалённой машины.