Система 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; просмотров: 673;