Система SSH

Система SSH (Secure Shell) предоставляет защищенную с помощью крипто- графии надежную альтернативу r-командам и службе telnet. Она позволяет открывать шифрованный канал связи между удаленными узлами, предостав- ляет возможности аутентификации с использованием публичных и частных ключей (несимметричное шифрование), защищает от подмены IP-адресов.

В GNU/Linux используется свободная версия системы SSH — OpenSSH.

Пакет OpenSSH представлен тремя основными программами:

r sshd — сервер SSH, прослушивающий 22-й порт TCP;

r ssh — клиент службы SSH, позволяющий инициировать удаленный сеанс;

r scp — программа для удаленного копирования.

Серверная и клиентская части системы OpenSSH обладают разными файлами конфигурации: сервер sshd имеет конфигурационный файл /etc/ssh/sshd_config, а клиенты ssh и scp — /etc/ssh/ssh_config.

Сервер OpenSSH запускается самостоятельно (stand-alone) с помощью сцена- рия в каталоге /etc/init.d, поэтому для автоматического старта сервера OpenSSH при переходе в многопользовательский режим следует надлежа- щим образом сконфигурировать систему инициализации.

Для инициирования сеанса на удаленной машине с запущенным серве- ром OpenSSH достаточно на клиентском узле просто выполнить команду ssh, указав ей в качестве аргумента имя или IP-адрес узла назначения (при- мер 22.12).


 

Пример 22.12. Вход в сеанс SSH

 

$ ssh note

The authenticity of host 'note (192.168.11.25)' can't be established. RSA key fingerprint is ac:1d:51:58:6f:f4:3a:b9:a7:ac:82:b3:25:1e:3a:30. Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'note,192.168.11.25' (RSA) to the list of known hosts.

user@note's password:

Last login: Fri Jul 2 19:33:26 2004

$ hostname note.class.edu

$ exit logout

Connection to note closed.

 

В примере 22.12 пользователь user открыл с помощью команды ssh удален- ный сеанс на узле note.class.edu. При этом был использован простейший вариант аутентификации с использованием пароля. Обратите внимание на то, что, т. к. вход в сеанс с данного узла осуществлялся впервые, сервер OpenSSH предупредил, что внес данные о клиентском узле в файл ~/.ssh/known_hosts. В этом файле хранятся специальные шифрованные сигнатуры, позволяющие идентифицировать клиентский узел.

Одной из наиболее часто используемых опций команды ssh является -l, с помощью которой можно указать имя пользователя для входа в сеанс (при- мер 22.13).

 

Пример 22.13. Явное указание имени пользователя для входа в сеанс

 

$ ssh -l apox restrict.class.edu

 

В этом примере пользователь susel инициирует удаленный сеанс на узле

restrict.class.edu под именем apox, зарегистрированного на этом узле. Команда scp копирует файлы на удаленную машину и с нее (пример 22.14).

 

Пример 22.14. Копирование файлов с помощью scp

 

$ scp note:~/linux.tar /tmp apox@note's password:

linux.tar 100% 210KB 0.0KB/s 00:00


 

Команда scp скопировала с удаленного компьютера файл linux.tar и помести- ла его в каталог /tmp на локальной машине.

Можно в явном виде указать имя пользователя на удаленной машине (при-

мер 22.15).

 

Пример 22.15. Явное указание имени пользователя в scp

 

susel$ scp webadm@note:/var/www/html/susel.php webadm@note's password:

susel.php 100% 22KB 0.0KB/s 00:00

 

В этом примере пользователь susel скопировал с удаленной машины файл, пройдя процедуру аутентификации на ней, как пользователь webadm.

Несмотря на то, что команды ssh и scp используют шифрованный канал, во многих случаях аутентификацию с помощью пароля нельзя признать безо- пасной. В таких случаях можно использовать криптографическую аутенти- фикацию. SSH предоставляет возможность использовать аутентификацию по протоколам RSA и DSA.

Первое, что необходимо сделать для обеспечения возможности аутентифика- ции с помощью RSA, — это создать командой ssh-keygen пару ключей несимметричного шифрования (пример 22.16).

 

Пример 22.16. Генерация ключей

 

$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/spa/.ssh/id_rsa): Created directory '/home/spa/.ssh'.

Enter passphrase (empty for no passphrase): Enter same passphrase again:

Your identification has been saved in /home/spa/.ssh/id_rsa. Your public key has been saved in /home/spa/.ssh/id_rsa.pub. The key fingerprint is:

3b:51:43:a3:67:5b:5b:27:fa:f6:fc:84:c3:6c:9b:67 spa@note.class.edu

 

Эта команда создает пару ключей RSA. Они помещаются в подкаталог .ssh домашнего каталога пользователя, вызвавшего команду. Файл id_rsa содер- жит частный ключ, доступ к которому должен быть предоставлен лишь его


 

владельцу. Файл id_rsa.pub должен быть помещен на удаленный узел, с кото- рым необходимо обеспечить связь по шифрованному каналу.

Парольная фраза, которую требуется ввести здесь — это "пропуск" к частно- му ключу. Допускается не вводить ее, но в таком случае частный ключ не будет защищен.

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

После создания пары ключей несимметричного шифрования, необходимых для аутентификации пользователя, требуется поместить публичный ключ на удаленный хост. Для этого можно зайти на него, используя ssh, и скопиро- вать с помощью scp публичный ключ с собственного узла на удаленный узел (пример 22.17).

 

Пример 22.17. Копирование публичного ключа на удаленный узел

 

$ ssh mainfrank.class.edu spa@mainfrank.class.edu's password: Last login: Fri Jul 2 10:13:06 2004 spa% hostname

mainfrank.class.edu

spa% scp note.class.edu:~/.ssh/id_rsa.pub secret.pub

id_rsa.pub 100% 22KB 0.0KB/s 00:00 spa% cat secret.pub >> .ssh/authorized_keys ; rm -f secret.pub

spa% chmod 600 .ssh/authorized_keys spa% exit

 

На первом шаге этой процедуры пользователь spa открывает удаленный се- анс на узле mainfrank.class.edu, куда требуется передать публичный ключ.

Далее он копирует, находясь в сеансе на удаленном узле, публичный ключ со своего компьютера во временный файл на mainfrank.class.edu.

После этого ключ добавляется к базе данных публичных ключей, находя- щейся в файле .ssh/authorized_keys, права доступа к которому должны быть ограничены лишь его владельцем.


 

После выхода из сеанса следующий инициированный сеанс будет открыт при условии успешной аутентификации с помощью частного и публичного ключей.

 








Дата добавления: 2015-06-12; просмотров: 660;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.016 сек.