Использование ssh Теперь пакет



Использование ssh

Теперь пакет ssh и связанные с ним команды установлены и готовы к выполнению.

Сначала опробуем удаленный вход в систему. Можно использовать программу slogin точно так же, как использовалась программа rlogin в примере в первой главе. Первый раз, когда Вы делаете попытку подключения к компьютеру, ssh получит публичный ключ хоста и запросит подтверждение с помощью электронной подписи fingerprint.

Администратор удаленного компьютера должен предоставить электронную подпись, которую Вы должны добавить к Вашему файлу .ssh/known_hosts. Если он этого не сделал, Вы можете соединиться с удаленным компьютером, но ssh предупредит Вас о возникшей ситуации. Допустим, что Вы уверены в том, что работаете с тем компьютером, с которым хотели связаться (никто не перехватил DNS). Тогда ответьте на запрос положительно. Соответствующий ключ будет автоматически сохранен в Вашем файле .ssh/known_hosts без повторных запросов. Если при следующей попытке подключения, публичный ключ с этого компьютера не соответствует тому, который сохранен, Вы будете предупреждены, потому что это представляет потенциальную опасность.

Первый вход в систему на удаленном компьютере будет выглядеть так:

$ slogin vchianti.vbrew.com The authenticity of host 'vchianti.vbrew.com' can't be established. Key fingerprint is 1024 7b:d4:a8:28:c5:19:52:53:3a:fe:8d:95:dd:14:93:f5. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'vchianti.vbrew.com,172.16.2.3' to the list of/ known hosts. maggie@vchianti.vbrew.com's password: Last login: Tue Feb 1 23:28:58 2000 from vstout.vbrew.com $

На запрос о пароле нужно указать свой пароль на удаленной системе. Этот пароль не будет отображен на экране, когда Вы напечатаете его.

Без специальных параметров slogin будет пытаться войти с тем же идентификатором пользователя, который был применен на локальной машине. Вы можете отменить это, указанием параметра -l с именем для регистрации на удаленном компьютере.

Можно копировать файлы по сети командой scp. Синтаксис подобен стандартной cp за исключением того, что Вы можете определять имя машины перед именем файла, указывая, что файл находится на определенном компьютере. Следующий пример иллюстрирует синтаксис scp, копируя локальный файл /tmp/fred в каталог /home/maggie/ на удаленный компьютер chianti.vbrew.com:


$ scp /tmp/fred vchianti.vbrew.com:/home/maggie maggie@vchianti.vbrew.com's password: fred 100% |*****************************| 50165 00:01 ETA

Конечно, будет запрошен пароль. Команда scp по умолчанию отображает полезные сообщения о ходе процесса копирования. Вы можете копировать файл и с удаленного компьютера: просто определите имя хоста и путь к файлу как источник и локальный путь как адресат. Можно даже копировать файлы с удаленного компьютера на другой удаленный компьютер, но это не очень удобно, поскольку все данные пойдут транзитом через Ваш компьютер.

Вы можете выполнять команды на удаленных компьютерах, использующих ssh. Синтаксис очень прост. Допустим, пользователь maggie просматривает оглавление корневого каталога на машине vchianti.vbrew.com. Команда:

$ ssh vchianti.vbrew.com ls -CF / maggie@vchianti.vbrew.com's password: bin/ console@ dos/ home/ lost+found/ pub@ tmp/ vmlinuz@ boot/ dev/ etc/ initrd/ mnt/ root/ usr/ vmlinuz.old@ cdrom/ disk/ floppy/ lib/ proc/ sbin/ var/

Можно помещать ssh в поток команд с перенаправлением ввода-вывода ("трубопровод"). Все будет работать как и в любой другой команде Linux с той лишь разницей, что ввод-вывод ssh пойдет по сети через защищенное соединение. Вот пример того, как Вы могли бы использовать эту возможность в комбинации с командой tar, чтобы скопировать целый каталог с подкаталогами и файлами с удаленного компьютера на локальный компьютер:

$ ssh vchianti.vbrew.com "tar cf - /etc/" | tar xvf - maggie@vchianti.vbrew.com's password: etc/GNUstep etc/Muttrc etc/Net etc/X11 etc/adduser.conf .. ..

Здесь выполняемая команда взята в кавычки, чтобы она вся была воспринята как параметр ssh, а не обрабатывалась локальной оболочкой. Эта команда выполняет tar на удаленном компьютере, чтобы архивировать каталог /etc, и пишет результат на стандартный вывод. Мы имеем перенаправление на команду tar на локальном компьютере в режиме извлечения, причем чтение архива идет из стандартного ввода.

Конечно, везде и всегда запрашивается пароль. Теперь становится понятно, почему ssh часто настраивают так, что он не запрашивает Вас относительно паролей все время! Теперь настроим локальный клиент ssh, чтобы он не спрашивал пароль для связи с vchianti.vbrew.com. Я ранее упомянул файл .ssh/authorized_keys, здесь-то он и нужен. Файл .ssh/authorized_keys хранит публичные (public) ключи любых удаленных записей пользователя, к которым нужен автоматический вход. Можно устанавливать автоматические входы в систему, копируя содержание .ssh/identity.pub из удаленной (remote) системы в локальный файл .ssh/authorized_keys. Установите права доступа к файлу .ssh/authorized_keys так, чтобы только Вы могли его читать и писать. Это делается командой:

$ chmod 600 ~/.ssh/authorized_keys

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

Набор инструментальных средств ssh очень мощен и имеет многие другие полезные свойства и параметры. Для дальнейшего его изучения обратитесь к man-страницам и другой документации, которая поставляется вместе с пакетом.



Содержание раздела