21.3. Настройка клиента OpenSSH

Чтобы подключиться к серверу OpenSSH с клиентского компьютера, на этом компьютере вы должны установить пакеты openssh-clients и openssh.

21.3.1. Использование команды ssh

Команда ssh является безопасной заменой команд rlogin, rsh и telnet. Она позволяет вам регистрироваться и выполнять команды на удалённом компьютере.

Регистрация на удалённом компьютере с помощью ssh похожа на использование telnet. Чтобы зарегистрироваться на удалённом компьютере с именем penguin.example.net, введите следующую команду в приглашении оболочки:

ssh penguin.example.net

При первом ssh-подключении к удалённому компьютеру вы увидите подобное сообщение:

The authenticity of host 'penguin.example.net' can't be established.
DSA key fingerprint is 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c.
Are you sure you want to continue connecting (yes/no)? 

Введите yes для продолжения. При этом сервер будет добавлен в ваш список известных узлов ~/.ssh/known_hosts/), о чём говорит следующее сообщение:

Warning: Permanently added 'penguin.example.net' (RSA) to the list of known hosts.

Затем вы увидите приглашение для ввода пароля удалённого компьютера. Введя правильный пароль, вы окажетесь в приглашении оболочки удалённого компьютера. Если вы не указываете имя пользователя, на удалённый компьютер передаётся имя, с которым вы зарегистрированы на локальном клиентском компьютере. Если же вы хотите указать другое имя пользователя, выполните следующую команду:

ssh username@penguin.example.net

Вы можете использовать и такую запись: ssh -l username penguin.example.net.

Команда ssh может применяться для выполнения команд на удалённом компьютере без использования приглашения оболочки. При этом используется запись: ssh hostname command. Например, если вы хотите выполнить команду ls /usr/share/doc на удалённом компьютере penguin.example.net, введите в приглашении оболочки:

ssh penguin.example.net ls /usr/share/doc

Когда вы введёте правильный пароль, на экране появится содержимое удалённого каталога /usr/share/doc и вы вернётесь к приглашению своей локальной оболочки.

21.3.2. Использование команды scp

Команда scp используется для передачи файлов между компьютерами через безопасное, шифрованное соединение. Она похожа на rcp.

Общий синтаксис передачи локального файла на удалённый компьютер выглядит так:

scp <localfile> username@tohostname:<remotefile>

Здесь <localfile> указывает исходный файл, включая путь к нему, например, /var/log/maillog. Параметр <remotefile> определяет назначение; это может быть новое имя файла, например /tmp/hostname-maillog. Если вы не укажите в начале пути удалённого каталога /, будет выбран путь относительно домашнего каталога пользователя username, обычно это /home/username/.

Чтобы переслать локальный файл shadowman в домашний каталог вашей учётной записи на компьютере penguin.example.net, введите в приглашении оболочки следующее (подставьте вместо username ваше имя пользователя):

scp shadowman username@penguin.example.net:shadowman

При этом локальный файл shadowman скопируется в /home/username/shadowman на компьютере penguin.example.net. Вы также можете опустить имя файла shadowman в конце команды scp.

Общий синтаксис передачи удалённого файла на локальный компьютер выглядит так:

scp username@tohostname:<remotefile> <newlocalfile>

Где <remotefile> обозначает исходный файл, включая путь, а <newlocalfile> — назначение, включая путь.

В качестве исходных файлов можно указать несколько файлов. Например, чтобы переслать содержимое каталога downloads/ в существующий каталог uploads/ удалённого компьютера penguin.example.net, введите в приглашении оболочки следующую команду:

scp downloads/* username@penguin.example.net:uploads/

21.3.3. Использование команды sftp

Утилита sftp используется для создания защищенного, интерактивного сеанса FTP. Она похожа на ftp, за исключением того, что используется безопасное, зашифрованное соединение. Общий синтакстис команды: sftp username@hostname.com. Пройдя проверку подлинности, вы можете использовать тот же набор команд, что и с FTP. Список этих команд можно получить на странице man sftp. Чтобы прочитать страницу man, выполните в приглашении оболочки man sftp. Утилита sftp включена в состав пакета OpenSSH версии 2.5.0p1 и выше.

21.3.4. Создание пар ключей

Если вы не хотите вводить пароль при каждом подключении к удалённому компьютеру с помощью ssh, scp или sftp, вы можете создать пару ключей для авторизации.

Ключи должны быть созданы для каждого пользователя. Чтобы создать ключи для пользователя, выполните следующие действия от имени пользователя, который будет подключаться к удалённым компьютерам. Если вы выполните эти действия под именем root, только root сможет использовать эти ключи.

Начиная с OpenSSH верии 3.0, файлы ~/.ssh/authorized_keys2, ~/.ssh/known_hosts2 и /etc/ssh_known_hosts2 являются устаревшими. В протоколах SSH 1 и 2 используются файлы ~/.ssh/authorized_keys, ~/.ssh/known_hosts и /etc/ssh/ssh_known_hosts.

Red Hat Enterprise Linux 4 по умолчанию использует протокол SSH версии 2 и ключи RSA.

ПодсказкаПодсказка
 

Если вы переустанавливаете систему и хотите сохранить созданную пару ключей, сделайте копию подкаталога .ssh в вашем домашнем каталоге. Переустановив систему, верните скопированный каталог в свой домашний каталог. Этот процесс можно выполнить для всех пользователей вашей системы, включая root.

21.3.4.1. Создание пары ключей RSA для версии 2

Чтобы создать пару ключей RSA для версии 2 протокола SSH, следуйте следующим указаниям. OpenSSH, начиная с версии 2.9, по умолчанию использует этот протокол.

  1. Чтобы создать пару ключей RSA, работающих с протоколом версии 2, введите в приглашении оболочки следующую команду:

    ssh-keygen -t rsa

    Согласитесь с предложенным расположением файла ~/.ssh/id_rsa. Введите секретную фразу, отличную от пароля вашей учётной записи и подтвердите её.

    Открытый ключ сохраняется в файле ~/.ssh/id_rsa.pub. Закрытый ключ сохраняется в ~/.ssh/id_rsa.pub. Никогда не давайте свой закрытый ключ никому.

  2. Измените разрешения на каталог .ssh, выполнив следующую команду:

    chmod 755 ~/.ssh
  3. Скопируйте содержимое ~/.ssh/id_rsa.pub в файл ~/.ssh/authorized_keys на компьютер, к которому вы хотите подключиться. Если на другом компьютере уже существует файл ~/.ssh/authorized_keys, добавьте содержимое файла ~/.ssh/id_rsa.pub в файл ~/.ssh/authorized_keys.

  4. Измените разрешения файла authorized_keys, выполнив следующую команду:

    chmod 644 ~/.ssh/authorized_keys
  5. Если вы используете GNOME, перейдите к разделу 21.3.4.4 Настройка ssh-agent в GNOME. Если вы не используйте систему X Window , перейдите к разделу 21.3.4.5 Настройка ssh-agent.

21.3.4.2. Создание пары ключей DSA для версии 2

Выполните следующие действия для создания пары ключей DSA для версии 2 протокола SSH.

  1. Чтобы создать пару ключей DSA, работающих с протоколом версии 2, введите в приглашение оболочки следующую команду:

    ssh-keygen -t dsa

    Согласитесь с предложенным расположением файла ~/.ssh/id_dsa. Введите секретную фразу, отличную от пароля вашей учётной записи и подтвердите её.

    ПодсказкаПодсказка
     

    Секретная фраза — это строка слов и символов, используемая для проверки подлинности пользователя. Секретные фразы отличаются от паролей, тем, что они могут содержать пробелы и табуляции. Секретные фразы обычно длиннее паролей, так как чаще всего это не одно слово, а несколько.

    Открытый ключ сохраняется в файле ~/.ssh/id_dsa.pub. Закрытый ключ сохраняется в ~/.ssh/id_dsa. Важно никогда и никому не давать свой закрытый ключ.

  2. Измените разрешения на каталог .ssh с помощью следующей команды:

    chmod 755 ~/.ssh
  3. Скопируйте содержимое ~/.ssh/id_dsa.pub в файл ~/.ssh/authorized_keys на компьютер, к которому вы хотите подключиться. Если на другом компьютере уже существует файл ~/.ssh/authorized_keys, добавьте содержимое файла ~/.ssh/id_dsa.pub в файл ~/.ssh/authorized_keys.

  4. Измените разрешения файла authorized_keys, выполнив следующую команду:

    chmod 644 ~/.ssh/authorized_keys
  5. Если вы используете GNOME, перейдите к разделу 21.3.4.4 Настройка ssh-agent в GNOME. Если вы не используйте систему X Window , перейдите к разделу 21.3.4.5 Настройка ssh-agent.

21.3.4.3. Создание пары ключей RSA для версии 1.3 и 1.5

Выполните следующие действия для создания пары ключей RSA для версии 1 протокола SSH. Если вы системы, который вы соединяете, используют только DSA, пара ключей для RSA версий 1.3 и 1.5 вам не нужна.

  1. Чтобы создать пару ключей RSA (для версий протокола 1.3 и 1.5), введите в приглашении оболочки следующую команду:

    ssh-keygen -t rsa1

    Согласитесь с предложенным расположением файла (~/.ssh/identity). Введите секретную фразу, отличную от пароля вашей учётной записи. Подтвердите секретную фразу, введя её снова.

    Открытый ключ сохраняется в файле ~/.ssh/identity.pub. Закрытый ключ сохраняется в ~/.ssh/identity. Не давайте никому свой закрытый ключ.

  2. Измените права доступа к своему каталогу .ssh и ключу, выполнив команды chmod 755 ~/.ssh и chmod 644 ~/.ssh/identity.pub.

  3. Скопируйте содержимое ~/.ssh/identity.pub в файл ~/.ssh/authorized_keys на компьютер, к которому вы хотите подключиться. Если файл ~/.ssh/authorized_keys не существует, вы можете скопировать файл ~/.ssh/identity.pub в файл ~/.ssh/authorized_keys удалённого компьютера.

  4. Если вы используете GNOME, перейдите к разделу 21.3.4.4 Настройка ssh-agent в GNOME. Если вы не используете GNOME, перейдите к разделу 21.3.4.5 Настройка ssh-agent.

21.3.4.4. Настройка ssh-agent в GNOME

Программа ssh-agent может сохранять вашу секретную фразу, чтобы вам не понадобилось вводить её при каждом установлении соединения ssh или scp. Если вы работает в GNOME, вы можете воспользоваться программой, которое спросит у вас секретную фразу при входе в систему и сохранит её до выхода из GNOME (она включена в пакет openssh-askpass-gnome). В этом случае вам не придётся вводить пароль или секретную фразу для каждого ssh или scp-соединения, установленного в течении этого сеанса GNOME. Если вы не используете GNOME, перейдите к разделу 21.3.4.5 Настройка ssh-agent.

Чтобы сохранить вашу секретную фразу в течение сеанса GNOME, выполните следующие действия:

  1. Вам потребуется установить пакет openssh-askpass-gnome; чтобы проверить, установлен ли он, выполните команду rpm -q openssh-askpass-gnome. Если он не установлен, установите его с компакт-дисков Red Hat Enterprise Linux, FTP-сайта (или зеркала) Red Hat или воспользуйтесь сетью Red Hat Network.

  2. Выберите в Главном меню (Main Menu) (на панели) => Параметры (Preferences) => Дополнительные параметры (More Preferences) => Сеансы (Sessions) и перейдите на вкладку Программы, запускаемые при старте (Startup Programs). Нажмите кнопку Добавить (Add) и введите /usr/bin/ssh-add в текстовом поле Команда, запускаемая при старте (Startup Command). Задайте коэфициент приоритета, больший, чем у любой существующей команды, чтобы эта команда выполнялась последней. Подходящим значением приоритета для ssh-add будет 70 или выше. Чем выше коэффициент приоритета, тем ниже приоритет. Если у вас перечислены другие программы, это должна иметь наименьший приоритет. Нажмите Закрыть (Close), чтобы выйти из программы.

  3. Выйдите из системы и вернитесь в GNOME; другими словами, перезапустите X. После запуска GNOME на экране появляется диалог, предлагающий ввести вашу секретную фразу. Введите требуемую секретную фразу. Если вы создавали пары ключей DSA и RSA, вы будете вводить обе фразы. С этого момента вы не будете вводить пароль для того, чтобы использовать ssh, scp или sftp.

21.3.4.5. Настройка ssh-agent

Программа ssh-agent может сохранять вашу секретную фразу, чтобы вам не понадобилось вводить её при каждом установлении соединения ssh или scp. Если вы не используете X Window System, выполните следующие действия в приглашении оболочки. Если вы используете GNOME, но не хотите, чтобы он спрашивал вас секретную фразу при регистрации (как описано в разделе 21.3.4.4 Настройка ssh-agent в GNOME), эта процедура будет работать в окне терминала, например, XTerm. Если же вы используете X, но не GNOME, в окне терминала будет работать следующая процедура. Однако, ваша секретная фраза будет сохранена только в окне терминала; она не будет доступна глобально.

  1. В приглашении оболочки выполните следующую команду:

    exec /usr/bin/ssh-agent $SHELL
  2. Затем введите команду:

    ssh-add 

    и введите вашу секретную фразу. Если вы настроили несколько пар ключей, вам будет предложено ввести пароль для каждой.

  3. Когда вы завершите сеанс, ваша секретная фраза будет забыта. Вы должны выполнять эти две команды каждый раз при регистрации на виртуальной консоли или создании нового окна терминала.