Доступ к ресурсам ИВЦ
Для получения доступа к вычислительному комплексу ИВЦ необходимо ознакомиться с правилами работы и заполнить форму регистрации.
Доступ к интерфесному серверу кластера возможен как из локальной сети НГУ, так и из интернет. Доступ осуществляется с использованием стандартных протоколов SSH и SFTP (SCP):
- Протоколы SFTP и SCP позволяют передавать файлы между персональной рабочей станцией пользователя и сервером ИВЦ.
- Протокол SSH позволяет работать на удалённом сервере, т.е. выполнять на нём команды. Например, компилировать свои программы и затем ставить их в очередь на выполнение.
Пользователям, работающим в операционных системах семейства Microsoft Windows, предлагается использовать следующее открытое программное обеспечение: SSH-клиент PuTTY и SFTP-клиент WinSCP. Пользователи, работающие в Unix-системах, уже имеют в их составе утилиты 'scp' и 'ssh'.
Для авторизации пользователей используются только RSA-ключи, использование паролей запрещено (причины см. ниже). При этом открытая (public) часть ключа сообщается пользователем администрации ИВЦ в процессе регистрации и в дальнейшем пользователь авторизуется закрытой (private) частью ключа. Закрытая часть должна храниться пользователем в месте, недоступном для посторонних лиц. Рекомендуется дополнительно закодировать закрытую часть, указав при генерации ключа парольную фразу (passphrase).
При необходимости один пользователь может использовать несколько ключей. Если у вас ещё нет своего ключа, его можно сгенерировать и использовать описанными ниже способами.
Обращаем внимание, что закрытые части ключей, созданных командами «puttygen» и «ssh-keygen», сохраняются в разных форматах. И хотя их взаимное преобразование возможно (это описано ниже), для простоты рекомендуется создавать ключ именно тем способом, который планируется использоваться в дальнейшем.
Закрытая часть ключа и парольная фраза должны держаться в секрете и никогда не пересылаться электронной почтой.
Пользователям ОС Windows
Создание ключа
Для создания нового ключа:
- Запустите программу puttygen, входящую в комплект PuTTY.
- Нажмите кнопку Generate и двигайте мышкой случайным образом поверх окна до завершения генерации. Эти движения используются как источник случайных чисел.
- После того, как ключ сгенерирован, введите парольную фразу в поля Key passphrase и Confirm passphrase. Запомните парольную фразу, в случае её утери восстановление невозможно, требуется создание нового RSA-ключа.
- Последовательно сохраните обе части ключа кнопками Save private key (с расширением ppk) и Save public key (без расширения). В случае возникновения ошибки пробуйте сохранить в другой место - скорее всего причина в том, что Windows не позволяет записывать в системные директории.
При регистрации на комплексе вышлите не сам файл с открытой частью, а содержимое поля Public key for pasting into OpenSSH authorized_keys file программы puttygen.
Подключение
После отправки открытой части ключа в ИВЦ и получения подтверждения о предоставлении доступа запустите программу pageant. Щелките правой кнопкой мыши по появившемуся в системном трее значку программы и с помощью пункта меню «Add Key» загрузите сохраненную ранее закрытую часть в список активных ключей, указав парольную фразу (эту операцию необходимо будет повторять при каждом запуске программы «pageant»). При этом программа pageant раскодирует закрытую часть ключа с использованием парольной фразы и в дальнейшем будет передавать раскодированную часть программам putty и WinSCP, пытающимся произвести соединение.
Затем выберите в том же меню пункт «New session», в появившемся окне «PuTTY Configuration» в поле «Host Name (or IP address)» введите параметры подключения в формате ИмяВашейУчетнойЗаписи@СерверNUSC, сообщенные Вам при регистрации. В поле «Saved Sessions» укажите название, под которым Вы хотите сохранить параметры сессии и нажмите кнопку «Save». Затем нажмите кнопку «Open» - должно произойти соедининение, в результате чего Вы получите окно с приглашением к вводу команд. Обращаем внимание, что соединение должно произойти без запроса пароля (парольная фраза была использована ранее, в момент загрузки закрытой части в pageant). Если Вы все-таки получили в окне putty приглашение к вводу пароля, значит ранее что-то было сделано неверно.
В дальнейшем после запуска команды «pageant» и ввода закрытой части (как описано выше) сохранённые ранее параметры сессии можно выбрать в разделе «Saved Sessions» того же выпадающего меню.
Также следует указать putty кодировку символов, используемую сервером, иначе некоторые программы (например, популярный Midnight Commander) будут выглядеть не так, как нужно. Для этого надо запустить putty, выбрать сохраненную ранее ssh-сессию, нажать кнопку 'Load'. В древовидном меню слева переключиться на 'Window → Translation', справа в выпадающем листе 'Received data assumed to be in which character set' выбрать 'UTF-8'. Затем слева вернуться в 'Session' и сохранить изменившиеся настройки сессии.
Программа «WinSCP» при запуске выводит окно с интерфейсом, сильно похожим на PuTTY, в котором надо заполнить поля «Host name», «User name», «Private key file» и сохранить настройки кнопкой «Save». Затем подключиться, нажав кнопку «Login» и введя парольную фразу (если программа «pageant» настроена, как описано выше, запущена и в неё загружена закрытая часть ключа, указанная в WinSCP, то ввод парольной фразы не потребуется).
Пользователям Unix-систем
Пользователям Linux - cемейства, *BSD, Solaris, Cygwin, и т.д. рекомендуется использовать OpenSSH.
Выполните команду:
ssh-keygen -t rsa -b 3072 -f newkey
Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in newkey. Your public key has been saved in newkey.pub.
В результате в текущей директории будут созданы файлы «newkey» - закрытая часть и «newkey.pub» - открытая часть. После отправки открытой части в ИВЦ и получения подтверждения о предоставлении доступа Вы сможете установить соединение следующей командой:
ssh -i newkey ИмяВашейУчетнойЗаписи@СерверNUSC
Команда scp также имеет параметр -i, которым указывается, содержимое какого файла использовать в качестве закрытой части ключа при авторизации.
Закрытая часть ключа может быть помещена в файл ~/.ssh/id_rsa (должен быть доступен на чтение и запись только владельцу ), тогда в командах 'scp' и 'ssh' параметр '-i' может быть опущен:
mv -i newkey ~/.ssh/id_rsa mv -i newkey.pub ~/.ssh/id_rsa.pub chmod go-rwx ~/.ssh/id_rsa
ssh ИмяВашейУчетнойЗаписи@СерверNUSC
Преобразование ключей
В Unix-системах закрытая часть ключа хранится в формате, отличном от используемого в созданном puttygen файле *.ppk. Поэтому при необходимости использовать ключ в операционной системе другого типа его необходимо преобразовать.
Преобразование созданного с помощью puttygen ключа для его использования в ОС Unix-семейства:
- Запустить puttygen.
- Нажать кнопку 'Load', загрузить закрытую часть ключа, указав нужный файл и введя парольную фразу.
- В меню вверху окна программы выбрать пункт 'Conversions', в нём выбрать 'Export OpenSSH key', сохранить файл как 'id_rsa'.
- Скопировать id_rsa в ~/.ssh/id_rsa Unix-системы и сменить права на файл, как описано выше.
Преобразование созданного с помощью ssh-keygen ключа для его использования в ОС Windows-семейства:
- Скопировать файл 'id_rsa' в ОС Windows.
- Запустить puttygen.
- В меню вверху окна программы выбрать пункт 'Conversions', в нём выбрать 'Import key', указать нужный файл и ввести парольную фразу.
- Сохранить закрытую часть, нажав кнопку 'Save private key'.
Почему именно так
Типичный вопрос, возникающий при регистрации: «Можно ли вход сделать через пароль? Просто мне приходится работать с разных компьютеров и носить ключ с собой не очень удобно. Можно ли сделать имя пользователя покороче: ada, я уже к нему привык».
Ответ: желание использовать пароль вместо ключа и привычный короткий логин понятно, тем не менее, взгляните на ситуацию с учетом следующий факторов:
- Постоянно происходят попытки получения доступа к комплексу из интернета путем подбора логина/пароля. Общепринятым методом борьбы с этим является ограничение доступа по IP адресу обращающегося, причем по так называемому «белому» адресу, который настраивается провайдером (или системным администратором в институте) и на компьютере пользователя не фигурирует. Было ли бы удобно и Вам и мне (с учетом растущего количества пользователей ИВЦ и их мобильности) использовать подобный способ защиты от хакеров? Сейчас вместо этого нами используется защита, автоматически блокирующая IP адрес на десять минут при нескольких ошибках авторизации подряд. Но хакеры тоже знают, что такое «cloud technologies» и я уже наблюдал атаку, когда IP адреса не повторялись и используемая нами защита не реагировала. Таким образом, вся надежда только на устойчивость учетных записей к перебору. Слово «ada» присутствует в первом попавшемся мне англо-русском словаре, самый простой способ перебора по алфавиту на любом персональном компьютере попадет на это слово в первые минуты. Про проблему с выбором нетривиального пароля и насколько качественно она решается большинством пользователей распространяться не буду, сразу скажу, что авторизация ключами куда более устойчива к подбору по словарю или прямому перебору (в связи с большей длиной).
- Предполагается предоставление отчетов об использовании пользователями ресурсов комплекса. Как Вы считаете, насколько использование привычных только самому пользователю коротких логинов усложняет понимание отчета? Даже если я лично запомню, что ada - это не девушка с соответствующим именем, должен ли это запоминать мой руководитель? Даже вариант с использованием фамилии в качестве логина не подходит, т.к. у нас уже есть однофамильцы.
- Сам я работаю по очереди с трех компьютеров, на всех лежит закрытая часть ключа. Не все они контролируются мной монопольно, но шифрование закрытой части ключа с использованием парольной фразы усложняет компрометацию, к тому же я в какой-то степени доверяю остальным администраторам этих компьютеров. Не думаю, что Вы собираетесь работать через совершенно случайные компьютеры, например, в интернет-кафе, к тому же в подобном случае большую опасность будут представлять программы перехвата клавиатуры.
- Putty можно настроить для работы с usb-флеш, без установки на компьютер. Могу ошибаться, но в первом приближении это делается так: скопируйте в папку файл putty.exe, свой ppk-ключ и создайте файл startputty.bat примерно такого содержания:
start putty.exe -i key.ppk login@server
После этого при запуске bat-файла Вы будете получать окно putty, в котором необходимо только ввести парольную фразу. Предполагаю, что сразу после этого флеш можно выдернуть без последствий для уже работающей сессии.