Работаем с PuTTY из Windows
Игорь Лаврушов
г.Кисловодск
Putty это несколько отдельных программ, предназначенных для работы с unix-сервером по протоколам SSH1, SSH2, Telnet, Rlogin, Raw. Автором PuTTY является Simon Tatham. Программа работает на Win для Intel x86 и Alpha, а также на UNIX. Несмотря, на то что программа довольно популярна во всем мире, статей по практической работе с ней я не нашел, тем более что есть ньюансы, которые нужно учитывать. Чтобы устранить этот пробел и написана данная статья. Итак, полный комплект программ, под общим названием putty, состоит из нескольких утилит, их назначение вы видите ниже:
- putty.exe - клиент для соединения с сервером по протоколам telnet, ssh, raw, rlogin
puttytel.exe - только telnet клиент
puttygen.exe - генератор rsa/dsa ключей
pagent.exe - агент аутендификации, хранит ключи в памяти, при его использовании не нужно ручками вводить ключевую парольную фразу
plink.exe - интерфейс командной строки для putty
pscp.exe - безопасное копирование файлов
psftp.exe - безопасный ftp клиент для копирования, просмотра, переименования файлов и т.д.
Установка
Скачайте с домашней странице PuTTY последнюю версию программы или только те утилиты, которые вам нужны для работы. Устанавливать putty необязательно, можно просто скопировать файлы в нужную директорию. Я например, храню комплект putty на флешке и ношу его с собой.
Создание пары ключей
Для укрепления безопасности, при работе с сервером, лучше отключить вход по паролю и создать ключи с ключевой парольной фразой. Для этого предназначена утилита puttygen.exe, внешний вид которой вы видите на экране. После запуска, установите тип создаваемых ключей SSH1(RSA), SSH2(RSA) или SSH2(DSA), говорят что SSH2(RSA) самый защищенный. Теперь нужно выбрать длину ключа в битах, по умолчанию там установлено 1024. Меньшее значение установить можно, но SSH2 сервер работать с короткими ключами не будет. Я не рекомендую использовать стандартные длины ключей типа 1024, 2048, 4096 лучше измените длину случайным образом 1429, 2361, 3417 и т.д. Далее нажмите кнопку Generate и поводите мышкой по пустому KEY-полю, пока ползунок дойдет до конца, после этого будут сгенерированы два ключа.
Нажмите кнопку Save public key, для того чтобы записать на диск публичный ключ, назовем его rsa-pub. Этот файл вы скопируете на SSH сервер, для того чтобы он вас узнавал. Теперь нажмите Save private key, и запишите на диск ваш секретный ключ с именем rsa-priv который будет храниться только у вас и передавать его никуда не нужно. Парольную фразу, лучше создать, хотя можно работать и без нее, просто создайте ключ большей длины 3926бит например. Итак, на диске вы имеете два файла rsa-pub и rsa-priv.ppk. Если на сервере вы используете OpenSSH, то перед тем как вы скопируете rsa-pub на ваш удаленный сервер, нужно его скорректировать! Без этого, этот ключ не будет работать в unix системах с OpenSSH! Оригинальный файл rsa-pub, который был создан puttygen, выглядет так:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20050107"
AAAAB3NzaC1yc2EAAAABJQAAAIEA0vzPSq4tpvZf12OSyd6Q+F+tAEFMSn8kC1eQ
fqIZ9qCX2NNIJkYbtRrwZxLDTw4BR2zEuN+uHXZ4mepIKwtVHIUUiHoYUV8k/hXX
NbO0UMk=
---- END SSH2 PUBLIC KEY ----
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEA0vzPSq4tpvZf12OSyd6Q+F+tAEFMSn8kC1eQfqIZ9 qCX2NNIJkYbtRrwZxLDTw4BR2zEuN+uHXZ4mepIKwtVHIUUiHoYUV8k/hXXNbO0UMk=
Вот теперь файл rsa-pub с публичным ключем, готов к отправке на удаленный unix сервер и работать он будет корректно. Можно сделать по другому, выделите ключ в окне KEY, затем создайте пустой файл командой copy con rsa-pub и нажмите F6, теперь скопируйте в файл rsa-pub ключ из буфера, результат тотже.Пересылка публичного ключа на сервер
Перед тем как послать файл с ключем на сервер, нужно создать на сервере директорию .ssh в домашнем каталоге пользователя, под которым мы будет заходить и затем переслать сам файл, заодно его нужно переименовать. Сделать это можно средствами unix сервера, а можно и с помощью psftp.exe, команда выглядет так:
сжатие файл с командами ip сервераПри соединении, один раз, будет запрошен пароль пользователя username. Файл makesshdir.scr состоит из нескольких команд:
| | |
psftp -v -C -2 -b makesshdir.scr username@172.133.51.19
| |
SSH2 пользователь
- mkdir .ssh
cd .ssh
put rsa-pub authorized_keys
quit
Вход на сервер
Зайти на сервер вы можете несколькими способами. Если вы заходите по паролю, можно указать его прямо в строке или ввести по запросу (что, прямо скажем, более безопасно, так как пароль указывается в открытом виде), вот как будут выглядеть эти команды:
- putty -v -ssh -C -2 -pw ft6nHi4gAr username@172.133.51.19
putty -v -ssh -C -2 username@172.133.51.19
- putty -v -ssh -C -2 -i rsa-priv.ppk username@172.133.51.19
- PasswordAuthentication no
PermitEmptyPasswords no
- Protocol 2
Пересылка файла
При работе с сервером, периодически возникает необходимость передать файл на сервер или принять файл с сервера. Сделать это можно утилитами pscp.exe и psftp.exe. На мой взгляд, pscp.exe использовать удобнее. Ниже смотрим на пример, который показывает, как можно по защищенному каналу, переслать файл stat0211.tgz из своего ПК на удаленный сервер:
сжатие исходный файл ip сервераПри выполнении команды в таком виде, сервер запросит пароль. Чтобы это избежать можно добавить строку с паролем
| | |
pscp.exe -v -C -2 stat0211.tgz username@172.133.51.19:
| |
SSH2 пользователь
Теперь, мы захотели получить файл из удаленного сервера и сохранить его на своем ПК. Разные варианты команд, приведены ниже. Здесь все как и в предыдущих командах, вообщем, разберайтесь сами: pscp -v -C -2 -i rsa-priv.ppk username@172.133.51.19:config.tgz config.tgz
pscp -v -C -2 -pw node1xnet username@172.133.51.19:rc.local rc.local
pscp -v -C -2 username@172.133.51.19:rc.modules rc.modules
Манипуляции с файлами
Утилита psftp.exe также как и pscp.exe позволяет копировать файлы, но возможности ее значительно больше. Psftp.exe может производить манипуляции с файлами на удаленном сервере и на локальном ПК. Для работы с этим клиентом в ручном режиме, кликните по файлу psftp мышкой. В появившейся командной строке, наберите
- ! - выполнить команду на локальном компьютере
lcd - изменить текущую директорию на локальном пк
lpwd - показать текущую директорию на локальном пк
chmod - изменить права файлов или директорий
mv - переименовать файл
del, rm - удалить файл
dir, ls - показать список файлов и директорий
cd - изменить текущую директорию
mkdir - создать новую директорию
rmdir - удалить пустую директорию
pwd - показать текущую директорию
open - соединиться с указанным сервером
close - закрыть текущую SFTP сессию без выхода из psftp
bye, exit, quit - закрыть текущую сессию и выйти из программы
help - список команд с пояснениями
get - загрузить файл на локальный пк (с удаленного сервера)
mget - загрузить много файлов на локальный пк
reget - продолжить загрузку файлов на локальный пк
put - загрузить файл на сервер (с локального пк)
mput - загрузить много файлов на сервер
reput - продолжить загрузку файлов на сервер
- psftp -v -C -2 -i rsa-priv.ppk -b test1.scr username@172.133.51.19
отсюда