Это старая версия документа!
Содержание
Как подключится к серверу
Сервер под управлением Windows
RDP – протокол удалённого рабочего стола, использующийся для обеспечения удалённой работы пользователя с сервером, на котором запущен сервис терминальных подключений. Клиенты существуют практически для всех версий Windows, Linux, FreeBSD, Mac OS X, Android, Symbian. По умолчанию используется порт tcp 3389. Официальное название Microsoft для клиентского ПО – Remote Desktop Connection или Terminal Services Client (TSC), в частности, клиент в Windows 2k/XP/2003/Vista/2008/7 называется mstsc.exe.
Сервер под управлением Linux, FreeBSD
SSH – сетевой протокол, позволяющий производить удалённое управление операционной системой и туннелирование tcp-соединений (например, для передачи файлов). SSH-клиенты и оболочки:
- GNU/Linux, *BSD – kdessh, lsh-client, openssh-client, putty, ssh, Vinagre
- MS Windows – PuTTY, SecureCRT, ShellGuard, Axessh, ZOC, SSHWindows, ProSSHD, XShell
- MS Windows Mobile – PocketPuTTy, mToken, sshCE, PocketTTY, OpenSSH, PocketConsole
- Mac OS – NiftyTelnet SSH
- Symbian OS – PuTTY
- iPhone – i-SSH, ssh (в комплекте с Terminal)
- Android – connectBot
Использование ключей для доступа
Аутентификация по публичному ключу основана на проверке соответствия публичного ключа клиента, который размещается на сервере и секретного ключа пользователя, который расположен у клиента.
Open SSH
Генерация пары ключей осуществляется утилитой ssh-keygen на компьютере под управлением Linux, с которого выполняется подключение к серверу. При этом в каталоге пользователя образуется 2 ключа:
- ~/.ssh/id_rsa — секретный
- ~/.ssh/id_rsa.pub — публичный
Публичный ключ должен хранится на сервере в ~/.ssh/authorized_keys. При подключении к серверу пользователя, в каталогах которого лежат соответствующие ключи (в ~/.ssh/id_rsa), нет необходимости вводить пароль. В файле ~/.ssh/authorized_keys может последовательно содержаться несколько ключей для доступа к данному серверу под данным пользователем с нескольких серверов.
Создаем пару ключей:
user@hostname:~$ ssh-keygen -t rsa -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: a9:9c:e3:ce:df:9c:dd:0b:07:97:93:49:0a:65:7a:f3 user@hostname The key's randomart image is: +--[ RSA 4096]----+ | o | | + | | o o . | | . o = + | | S o E | | . o o . | | = . . | | o . o o + | | .+.. + . o. | +-----------------+
- -t – тип ключа. Доступны значения: rsa1, rsa, dsa, ecdsa
- -b – количество бит ключа. По умолчанию для rsa - 2048.
- passphrase – не используем (просто жмем Enter).
Проверяем наличие ключей в /home/user/.ssh/. Копируем публичный ключ на удаленную систему утилитой ssh-copy-id:
user@hostname:~$ ssh-copy-id -i ~/.ssh/id_rsa user@servername user@servername's password: Now try logging into the machine, with "ssh 'user@servername'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
При следующем логине по ssh - пароль уже не потребуется.
PuTTY (Windows)
В состав PuTTY, свободно распространяемого клиента SSH для Windows, входит PUTTYGEN.EXE (PuTTY Key Generator). Его назначение – генерация пары ключей, конвертация их в различные форматы:
Указываем следующие параметры:
- Тип ключа – SSH-2 RSA
- Длину ключа – 4096
Жмем кнопку «Generate»:
Производим указанные действия - хаотично двигаем курсором мыши на окне PuTTY Key Generator. Это сделано для того, чтобы увеличить энтропию и увеличить вероятность случайных чисел в генераторе. После окончания генерации ключей основное окно отобразит готовый публичный ключ (поле «Public key for pasting into OpenSSH authorized_keys file») и предложит ввести комментарий к ключу (поле «Key comment:») и ввести пароль к ключу (поле «Key passphrase:»). Установка комментария полезна в случае использования более одного ключа в своей работе. Пароль увеличит безопасность. Даже при краже приватного ключа получить доступ к серверам не удастся до тех пор, пока не будет введен пароль. В данном примере мы это пропускаем:
Для записи секретного ключа нажимаем кнопку «Save private key». Сохраняем его с расширением .ppk на своем компьютере.
Для размещения публичного ключа на сервере логинимся на него обычным способом и добавляем его в ~/.ssh/authorized_keys. Например, так:
user@servername:~$ echo "public_key_text" >> ~/.ssh/authorized_keys
где публичный ключ public_key_text – мы скопировали из поля «Public key for pasting into OpenSSH authorized_keys file».
Другой способ заключается в передаче на сервер, например с помощью WinSCP, файла публичного ключа, сохраненного при нажатии кнопки «Save public key» с именем, например, public_key и добавлении его в ~/.ssh/authorized_keys с помощью утилиты ssh-keygen:
user@servername:~$ ssh-keygen -i -f /home/user/public_key >> /home/user/.ssh/authorized_keys
Отключаемся от сервера.
Запускаем снова PuTTY. Указываем в настройках (поле «Private key file for authentication») файл секретного ключа:
имя пользователя, который будет логинится на сервер (поле «Auto-login username»):
адрес сервера (поле «Host Name (or IP address)») и порт для подключения («Port»):
В поле «Saved Sessions» указываем имя для сохранения настроек и жмем кнопку «Save». Логин на сервер с сохраненными настройками будет выполнен без запроса имени пользователя и пароля.
PuTTY (Linux)
Генерация ключей производится утилитой puttygen. Секретный ключ:
user@hostname:~$ puttygen -t rsa -b 4096 -o ~/.putty/user-key.ppk +++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Enter passphrase to save key: Re-enter passphrase to verify:
Публичный ключ:
user@hostname:~$ puttygen -L ~/.putty/user-key.ppk >> ~/.putty/user-key.pub
Копируем публичный ключ на сервер с помощью ssh-copy-id:
user@hostname:~$ ssh-copy-id -i ~/.putty/user-key.pub user@servername user@servername's password: Now try logging into the machine, with "ssh 'user@servername'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
Настройки PuTTY описаны выше, в разделе PuTTY (Windows).