Работа с удаленными системами c использованием SSH

Доступ к вычислительным ресурсам факультета ВМК МГУ осуществляется с использованием ssh, scp, sftp, Putty, WinSCP.

Система BlueGene/P доступ осуществляется по адресу

bluegene.hpc.cs.msu.ru

К системе Regatta доступ осуществляется по адресу

regatta.hpc.cs.msu.ru

К системе Tesla-cmc доступ осуществляется по адресу

cuda.hpc.cs.msu.ru

Программное обеспечение

На официальном сайте стандарта SSH доступны исходные тексты и откомпилированный код для некоторых платформ (Linux, Windows, Mac OS). Кратко рассмотрим возможные варианты.

Linux

  • SSH-клиент и используемая им библиотека SSL входят в комплект поставки большинства Linux-дистрибутивов. При необходимости установка из исходных кодов возможна без прав суперпользователя в домашнюю директорию. Исчерпывающую информацию по настройке и применению программ ssh и scp можно получить, обратившись к встроенной справке:
    $> man ssh
    $> man scp
  • Кроме команды scp, для копирования файлов подойдет и встроенный в Midnight Commander scp-клиент, который позволяет передавать файлы между машинами, используя панели программы:
    $> mc

Windows

  • Существует несколько реализаций SSH для Windows. Одним из ssh-клиентов является PuTTY (см. тж. PuTTY Portable). При его настройке (раздел «Session») в поле «Host Name» нужно указать интернет-адрес системы, к которой вы хотите подключиться (например, bluegene.hpc.cs.msu.ru), а переключатель «Connection type» выставить в положение «SSH». Чтобы не вводить при каждом подключении имя пользователя, с которым вы зарегистрированы в системе (например, myname), его можно указать через символ '@' в том же поле «Host Name» (например, myname@bluegene.hpc.cs.msu.ru).
  • Для копирования файлов можно использовать программу WinSCP (см. тж. WinSCP Portable), которая предоставляет удобный графический интерфейс. При работе в терминале будет полезна утилита pscp, входящая в пакет PuTTY. Синтаксис аргументов ее командной строки аналогичен таковому у Linux-команды scp.
  • Если требуется подключиться к X-серверу, запущенному на удаленной машине (например, для интерактивной визуализации данных с помощью программы, запущенной на удаленном компьютере, без переписывания их на локальную машину), необходимо установить локальный X-сервер, например, Xming. При этом в настройках PuTTY («Connection — SSH — X11») необходимо разрешить переадресацию X11-трафика («Enable X11 forwarding») и указать адрес X-дисплея (X display location): localhost или 127.0.0.1.
  • Кроме того, можно установить Linux-подобное окружение Cygwin, в котором уже имеются программы ssh, scp, а X-сервер запускается командой
    $> startx
  • Если вы применяете Linux из виртуальной машины типа VirtualBox, то часто можете непосредственно воспользоваться всеми преимуществами Linux-окружения: встроенными ssh, scp, и X-сервером. (Однако этот механизм может не сработать, если ваш провайдер предоставляет интернет-доступ через VPN-подключение; в таком случае необходимо отредактировать таблицы маршрутизации и/или указать в конфигурационных файлах адреса локальных DNS-серверов, но подобная настройка выходит за пределы рассматриваемых здесь вопросов.)

Mac OS

Использование

Вход на систему

  • Пользователь myname входит в систему bluegene.hpc.cs.msu.ru, выполнив команду
    $> ssh myname@bluegene.hpc.cs.msu.ru
    или с использованием ключа -i для указания пути к открытому ключу:
    $> ssh -i <файл ключа> myname@bluegene.hpc.cs.msu.ru
  • Если необходимо перенаправлять данные с удаленного X-сервера на локальную машину, в командной строке необходимо указать ключ -X:
    $> ssh -X myname@bluegene.hpc.cs.msu.ru
    В некоторых системах, кроме ключа -X, требуется указывать еще и ключ -Y:
    $> ssh -XY myname@bluegene.hpc.cs.msu.ru

Копирование файлов

  • Для того, чтобы скопировать файл local_file.tgz из текущей директории локальной машины в корень вашей домашней директории на удаленном компьютере, на локальной системе выполните команду (напоминаем, что команда scp имеет аналогчный синтаксис):
    $> scp local_file.tgz myname@bluegene.hpc.cs.msu.ru:
  • Для копирования файла remote_file.tgz из корня вашей домашней директории на удаленном компьютере в текущую директории локальной машины на локальной системе выполните команду:
    $> scp myname@bluegene.hpc.cs.msu.ru:remote_file.tgz .
  • В общем случае программа scp работает аналогично команде cp, т.е. можно одновременно копировать несколько файлов и использовать подстановочные символы. Например, следующая команда скопирует все архивы bz2 из текущей директории и файл ../bin/script.sh в папку ~/tmp домашней директории удаленной машины:
    $> scp *.bz2 ../bin/script.sh myname@bluegene.hpc.cs.msu.ru:./tmp
  • Чтобы рекурсивно скопировать целую директорию, нужно воспользоваться ключом -r. Например, копирование удаленной директории /tmp/myname в папку /tmp локальной машины будет выглядеть так:
    $> scp -r myname@bluegene.hpc.cs.msu.ru:/tmp/myname /tmp

Как ссылаться на файлы

  • Когда при частном общении один пользователь (myname) хочет сообщить другому, где в его домашней директории находится некий файл (~/somepath/somefile), часто используется следующая нотация:
    myname@bluegene.hpc.cs.msu.ru:./somepath/somefile
    Конечно, владелец учетной записи myname должен разрешить доступ к файлу на чтение, если он хочет поделиться им с другими пользователями.

Текст на этой странице составлен на основе инструкций суперкомпьютерного центра SARA