Хостинг В Украине бесплатно
Початок підрозділу     PuTTY 0.56
Зміст
Глава 1
Глава 2
Глава 3
Глава 4
Глава 5
Глава 6
Глава 7
Глава 8
Глава 9
Глава 10
Додаток A
Додаток B
Додаток C
Додаток D

Найкращий, з відомих мені, українських сайтів де можна придбати диск з будь-яким Linux
Найкращий, з відомих мені, українських сайтів де можна придбати диск з будь-яким Linux
linux.org.ua -- Linux/UNIX news
Український Linux на базі Slackware
Кращий браузер — Mozilla Firefox
Extensions.org.ua - українізовані розширення Frenzy - LiveCD на основе FreeBSD
Comp(OS)It
Пиши українською Linux.SU - Линукс в пять минут!
Сайт live дистрибутиву SLAX.
7-Zip
META-Ukraine
Портал Укрнет

Глава 6: Використання PSFTP для безпечної передачі файлів

     PSFTP, SFTP клієнт PuTTY, це утиліта для захищеної передачі файлів між комп'ютерами з використанням SSH з'єднання.

     PSFTP відрізняється від PSCP наступним чином:

  •      PSCP повинен працювати практично на будь-якому сервері SSH. PSFTP використовує новий протокол SFTP, який є характеристикою лише SSH 2. (PSCP також буде використовувати цей протокол, якщо це буде можливо, але існує еквівалент у протоколі SSH 1, якій вона може використовувати при відсутності альтернативи).

  •      PSFTP дозволяє вам запускати інтерактивну сесію передачі файлів, подібно багатьом ftp програмам для Windows. Ви можете переглядати вміст директорій, ходити по файловій системі, запускати команди отримання чи переміщення багатьох файлів і, нарешті, від'єднуватися. Для контрасту PSCP розроблено для виконання однієї операції передачі файлу і безпосереднього завершення.

Вгору

6.1 Старт PSFTP

     Звичайний шлях запуску PSFTP це командний рядок, подібно PSCP. Щоб зробити це вони обидва повинні бути в вашому PATH чи в вашій поточній директорії. Щоб додати директорію, що містить PSFTP, в вашу змінну оточення PATH наберіть у консольному вікні:

set PATH=C:\path\to\putty\directory;%PATH%

     На відміну від PSCP, тим не менш, синтаксис строки PSFTP не складний, ви просто вказуєте ім'я хосту і, можливо, імя користувача:

psftp server.example.com

чи, можливо:

psftp fred@server.example.com

     Аналогічно, якщо ви просто наберете psftp (чи двічі клацнете на іконці PSFTP у Windows GUI), ви побачите підказку PSFTP і повідомлення, яке каже вам, що PSFTP не з'єднаний з жодним сервером:

C:\>psftp
psftp: no hostname specified; use "open host.name" to connect
psftp>

     В цьому місці ви можете набрати open server.example.com чи open fred@server.example.com, щоб запустити сесію.

     PSFTP приймає усі загальні опції командного рядку утиліт PuTTY, за виключенням тих, які не мають сенсу в утиліті передачі файлів. Дивиться розділ 3.7.3 за описом цих опцій. (Ті, які не підтримуються PSFTP ясно позначені).

     PSFTP також підтримує деякі власні опції. Наступний розділ описує специфічні для PSFTP опції командного рядку.

Вгору

6.1.1 -b: вказує файл, якій містить пакетні команди

     У нормальній роботі PSFTP це інтерактивна програма, яка висвітлює командний рядок і приймає команди з клавіатури.

     Якщо вам необхідно автоматизувати завдання з PSFTP ви, імовірно, віддасте перевагу вказати набір команд, які потім виконуються автоматично. Опція -b дозволяє вам зробити це. Ви використовуєте її з ім'ям файлу, який містить пакет команд. Наприклад, ви можете створити файл myscript.scr, який містить лінії подібні до цих:

cd /home/ftp/users/jeff
del jam-old.tar.gz
ren jam.tar.gz jam-old.tar.gz
put jam.tar.gz
chmod a+r jam.tar.gz
quit

і потім ви можете запустити сценарій набравши:

psftp user@hostname -b myscript.scr

     Коли ви запускаєте пакетний сценарій таким чином PSFTP перерве сценарій, якщо будь-яка команда не буде повністю вдалою. Щоб змінити цю поведінку, ви можете додати опцію -be (розділ 6.1.3).

Вгору

6.1.2 -bc: показувати пакетні команди, коли вони виконуються

     Опція -bc змінює те, що показує PSFTP під час обробки пакетного сценарію з -b. З опцією -bc PSFTP буде показувати підказки і команди так ніби команди набираються з клавіатури. Отже замість того, щоб бачити це:

C:\>psftp fred@hostname -b batchfile
Sent username "fred"
Remote working directory is /home/fred
Listing directory /home/fred/lib
drwxrwsr-x 4 fred fred 1024 Sep 6 10:42 .
drwxr-sr-x 25 fred fred 2048 Dec 14 09:36 ..
drwxrwsr-x 3 fred fred 1024 Apr 17 2000 jed
lrwxrwxrwx 1 fred fred 24 Apr 17 2000 timber
drwxrwsr-x 2 fred fred 1024 Mar 13 2000 trn

ви можете побачити це:

C:\>psftp fred@hostname -bc -b batchfile
Sent username "fred"
Remote working directory is /home/fred
psftp> dir lib
Listing directory /home/fred/lib
drwxrwsr-x 4 fred fred 1024 Sep 6 10:42 .
drwxr-sr-x 25 fred fred 2048 Dec 14 09:36 ..
drwxrwsr-x 3 fred fred 1024 Apr 17 2000 jed
lrwxrwxrwx 1 fred fred 24 Apr 17 2000 timber
drwxrwsr-x 2 fred fred 1024 Mar 13 2000 trn
psftp> quit
Вгору

6.1.3 -be: продовжити пакетну обробку при помилках

     Коли виконується пакетний файл ця додаткова опція заставляє PSFTP продовжити обробку навіть, якщо команда не вдалась повністю успішно.

     Ви можете бажати щоб це трапилось, якщо ви бажаєте видалити файл і вас не турбує, що він вже не існує, наприклад.

Вгору

6.1.4 -batch: уникати інтерактивних підказок

     Якщо ви використовуєте опцію -batch, PSFTP ніколи не видасть інтерактивну підказку під час встановлення з'єднання. Якщо ключ хосту не вірний, наприклад (дивиться розділ 2.2), то з'єднання буде просто перервано замість того щоб запитати вас що робити далі.

     Це може допомогти поведінці PSFTP, коли вона використовується у сценаріях автоматизації: з використанням -batch, якщо щось йде не так під час з'єднання, пакетна робота буде перервана, що ліпше ніж зависнути.

Вгору

6.2 Робота PSFTP

     Лише ви запустили вашу PSFTP сесію ви побачите підказку psftp>. Тепер ви можете набирати команди для виконання функцій передачі файлів. Цей розділ описує усі доступні команди.

Вгору

6.2.1 Загальні правила лапок для команд PSFTP

     Більшість команд PSFTP розглядається командним інтерпретатором PSFTP як послідовність слів, розділена пропусками. Наприклад, команда ren oldfilename newfilename складається з трьох слів: ren (ім'я команди), oldfilename (ім'я файлу, який буде перейменовано) та newfilename (нове ім'я, яке буде дано файлу).

     Іноді вам необхідно вказати ім'я файлу, яке містить пропуски. Щоб зробити це ви можете оточити ім'я файлу подвійними лапками. Це працює однаково для локальних і віддалених імен файлів:

psftp> get "spacey file name.txt" "save it under this name.txt"

     Самі подвійні лапки не виступають як частина імені файлу; вони видаляються PSFTP і діють лише щоб пропуски всередині їх не розглядалися як роз'єднувачі слів.

     Якщо вам необхідно використовувати подвійні лапки (на деяких типах віддалених систем, таких як Unix, вам дозволяється використовувати подвійні лапки в іменах файлів), ви можете зробити це, якщо подвоїте їх. Це працює всередині і зовні подвійних лапок. Наприклад, ця команда:

psftp> ren ""this"" "a file with ""quotes"" in it"

візьме файл, чиє поточне ім'я "this" (з символом подвійних лапок з початку та кінця) і перейменує його у файл з іменем "quotes".

     (Єдине виключення у правилах лапок PSFTP це команда !, яка передає свій командний рядок безпосередньо у Windows без розділення її на слова як звичайно. Дивиться розділ 6.2.19).

Вгору

6.2.2 Знаки підстановки у PSFTP

     Деякі команди у PSFTP підтримуються «знаки підстановки» для вибору багатьох файлів.

     Для локальних специфікацій файлу (таких як перший аргумент для put), використовуються правила знаків підстановки для локальної операційної системи. Наприклад, PSFTP запущений на Windows може потребувати в використанні *.*, коли PSFTP у Unix потребує *.

     Для віддалених специфікацій файлу (таких як перший аргумент для get), PSFTP використовує стандартний синтаксис знаків підстановки (аналогічний знакам підстановки POSIX).

  • * означає будь-яку послідовність символів (включаючи послідовності нульової довжини).

  • ? означає точно один символ.

  • [abc] означає точно один символ, який може бути a, b чи c.
    [a-z] означає будь-який символ у діапазоні від a до z.
    [^abc] означає один символ, не a, b чи c.
    Спеціальні випадки: [-a] означає символ дефіс (-) чи a; [^-a] означає всі інші символи. [a^] означає символ каретки (^) чи a.

  • \ (зворотній слеш) перед будь-яким з вище наведених символів (чи собою) видаляє спеціальне значення цього символу.

     Крапка (.) на початку імені файлу спеціально не розглядається, за виключенням деякий Unix контекстів; get * отримає усі файли, чи починаються вони з крапки чи ні.

Вгору

6.2.3 Команда open: старт сесії

     Якщо ви запустите PSFTP подвійним клацанням в GUI чи просто наберете psftp у командному рядку, ви будете потребувати в відкритті з'єднання до SFTP серверу до того, як ви зможете виконати будь-яку іншу команду (за виключенням help та quit).

     Для створення з'єднання наберіть open host.name чи, якщо вам необхідно вказати ім'я користувача, ви можете набрати open user@host.name.

     Лише ви виконали цю команду, ви не зможете виконати її знов, навіть якщо команда не вдастся (наприклад, якщо ви не вірно наберете ім'я хосту чи з'єднання завершиться з-за вичерпання ліміту часу). Отже якщо з'єднання не відкриється вдало, PSFTP терміново завершить роботу.

Вгору

6.2.4 Команда quit: кінець вашої сесії

     Коли ви завершили вашу сесію, наберіть команду quit, щоб закрити з'єднання, завершити PSFTP і повернутися у командний рядок (чи просто закрийте консольне вікно PSFTP, якщо ви запустили його з GUI).

     Ви можете використовувати також команди bye та exit, які мають такий самий ефект.

Вгору

6.2.5 Команда close: закрийте ваше з'єднання

     Якщо ви бажаєте просто закрити мережеве з'єднання, але залишити запущеним PSFTP, ви можете використовувати команду close. Потім ви можете використовувати команду open, щоб відкрити нове з'єднання.

Вгору

6.2.6 Команда help: отримайте швидку допомогу

     Якщо ви наберете help, PSFTP дасть стислий перелік доступних команд.

     Якщо ви наберете help з іменем команди – наприклад, help get – то PSFTP дасть невеличкий клаптик допомоги по цій окремій команді.

Вгору

6.2.7 Команди cd та pwd: змінити віддалену робочу директорію

     PSFTP зберігає відомості про вашу «робочу директорію» на сервері. Це директорія за умовчанням, у якій працюють інші команди. Наприклад, якщо ви наберете get filename.dat, то PSFTP буде шукати filename.dat у вашій віддаленій робочій директорії на сервері.

     Щоб змінити вашу віддалену робочу директорію, використовуйте команду cd. Якщо ви не вкажете аргумент, cd поверне вас в вашу домашню директорію на сервері (більш точно, в віддалену директорію де ви були при старті з'єднання).

     Щоб висвітити вашу поточну віддалену директорію, наберіть pwd.

Вгору

6.2.8 Команди lcd та lpwd: зміна локальної робочої директорії

     Також як у PSFTP є робоча директорія на віддаленому сервері, у PSFTP є робоча директорія на вашій локальній машині (просто як будь-який інший процес Windows). Це локальна директорія за умовчанням, в котрій виконуються усі інші команди. Наприклад, якщо ви наберете get filename.dat, то PSFTP збереже результуючий файл як filename.dat у вашій локальній робочій директорії.

     Щоб змінити вашу локальну робочу директорію, використовуйте команду lcd. Щоб висвітити вашу поточну локальну робочу директорію, наберіть lpwd.

Вгору

6.2.9 Команда get: отримати файл з серверу

     Щоб завантажити файл з серверу і зберегти його на вашому локальному PC, використовуйте команду get.

     В своїй простішій формі, ви просто використовуєте її з іменем файлу:

get myfile.dat

     Якщо ви бажаєте зберегти файл локально під іншим ім'ям, вкажіть локальне ім'я після імені відділеного:

get myfile.dat newname.dat

     Це отримає файл з серверу під ім'ям myfile.dat, але збереже його на вашій локальній машині під ім'ям newname.dat.

     Для отримання вмісту директорії рекурсивно, ви можете використовувати опцію -r:

get -r mydir
get -r mydir newname

     (Якщо ви бажаєте отримати файл, чиє ім'я починається з дефісу, ви можете використовувати спеціальний аргумент --, який припиняє інтерпретацію командою get всього, що знаходиться за ним. Наприклад, ‘get -- -silly-name-’).

Вгору

6.2.10 Команда put: передайте файл на сервер

     Для завантаження файлу на сервер з вашого локального PC, використовуйте команду put.

     У її простішій формі ви просто використовуєте її з іменем файлу:

put myfile.dat

     Якщо ви бажаєте зберегти віддалений файл під іншим іменем, вкажіть ім'я віддаленого файлу після локального:

put myfile.dat newname.dat

     Це передасть локальний файл під іменем myfile.dat, але збереже його на сервері під новим іменем newname.dat.

     Для передачи вмісту директорії рекурсивно, ви можете використовувати опцію -r:

put -r mydir
put -r mydir newname

     (Якщо ви бажаєте послати файл ім'я, якого починається з дефісу, ви можете використовувати спеціальний аргумент --, який припиняє інтерпретацію командою put всього, що знаходиться за ним. Наприклад, ‘put -- -silly-name-’).

Вгору

6.2.11 Команди mget та mput: отримайте чи передайте багато файлів

     mget працює майже також як get, за виключенням, що вона дозволяє вказувати більше ніж один файл для отримання за раз. Ви можете зробити це двома шляхами:

  • вказавши два чи більше точних імені файлів (‘mget file1.txt file2.txt’)

  • використовуючи знаки підстановки (‘mget *.txt’).

     Кожен аргумент mget розглядається як ім'я файлу, що підлягає отриманню (на відміну від get, який інтерпретує не більш ніж один аргумент як це, а другий аргумент як альтернативне ім'я, під яким буде збережено отриманий файл) чи вираз знаків підстановки, який означає більш ніж один файл.

     Опції -r та -- з get також доступні для mget.

     mput аналогічна put, з такими ж відмінностями.

Вгору

6.2.12 Команди reget та reput: відновлення передачі файлів

     Якщо передача файлу перерветься на півдорозі і ви залишитеся з половиною файлу, яка збережена на вашому диску, ви можете завершити передачу файлу використовуючи команди reget и reput. Вони працюють точно як команди get та put, але вони перевіряють наявність на половину записаного файлу цілі і починають передачу звідти, де вона перервалась.

     Синтаксис reget і reput такий самий як синтаксис get і put:

reget myfile.dat
reget myfile.dat newname.dat
reget -r mydir

     Ці команди головним чином призначені для завершення перерваних передач. Вони вважають, що віддалений файл чи структура директорії жодним чином не змінювались; якщо вони змінювались, ви можете отримати пошкоджений файл. Зокрема, опція -r не відслідковує змін файлів і директорій вже повністю переданих.

Вгору

6.2.13 Команда dir: список віддалених файлів

     Щоб побачити список файлів в вашій робочій директорії просто наберіть dir.

     Ви можете також побачити список вмісту іншої директорії набравши dir і далі ім'я директорії:

dir /home/fred
dir sources

     Ви можете вивести перелік підмножини вмісту директорії використовуючи знаки підстановки:

dir /home/fred/*.txt
dir sources/*.c

     Команда ls працює так само як dir.

Вгору

6.2.14 Команда chmod: змініть дозволи на віддалених файлах

     PSFTP дозволяє вам змінювати дозволи на файлах і директоріях на сервері. Ви можете зробити це використовуючи команду chmod, яка працює дуже схоже на Unix команду chmod.

     Базовий синтаксис це chmod режим файлу (chmod modes file), де режим є модифікація в дозволах на файлі і файл це ім'я файлу, який модифікується. Ви можете вказати багато файлів чи знаки підстановки. Наприклад:

chmod go-rwx,u+w privatefile
chmod a+r public*
chmod 640 groupfile1 groupfile2

     Параметр режим може бути послідовністю восьми цифр у стилі Unix. (Якщо ви не знаєте що це, це означає що ви, мабуть, не будете їх використовувати!) Альтернативно це може бути список модифікацій, які допускаються, які розділені комами. Кожна модифікація складається з:

  • Люди для яких застосовується модифікація. Це може бути u (користувач власник), g (член групи власника) чи o (всі інші - ‘others’), чи деяка комбінація цього. Також це може бути a (‘all’), щоб вплинути на всіх разом.

  • Символ + чи – вказує додання чи видалення дозволу.

  • Дозвіл, який додається чи видаляється. Це може бути r (дозвіл читати файл), w (дозвіл писати у файл) та x (дозвіл на виконання файлу чи, у випадку директорії, дозвіл на доступ до файлів всередині директорії).

     Отже, приклади зверху виконають:

  • Перший приклад: go-rwx видалить дозволи на читання, запис і виконання для членів групи власників і всіх інших (тобто залишаться дозволи для власника файлу). u+w додасть дозвіл на запис для володаря файлу.

  • Другий приклад: a+r додасть дозвіл читати для всіх файлів та директорій, які починаються з «public» для всіх осіб.

     В додаток до всього цього є декілька спеціальних можливостей для Unix систем. На не Unix системах вони навряд корисні:

  • Ви можете вказати u+s та u-s, щоб додати чи видалити Unix біт set-user-ID. За звичай це корисно для спеціальних цілей; зверніться до вашої Unix документації, якщо ви не впевнені про що йде мова.

  • Ви можете вказати g+s та g-s, щоб додати чи видалити Unix біт set-group-ID. На файлах це працює аналогічно set-user-ID (знов дивиться вашу документацію Unix); на директорії це гарантує, що файли, які створені у цій директорії будуть доступні членам групи, що володіє директорією.

  • Ви можете вказати +t та -t, щоб додати чи видалити Unix ‘sticky bit’. Коли застосовується до директорії це означає, що власник файлу у цій директорії може видалити файл (в той час як у нормі лише це дозволяється власнику директорії).

Вгору

6.2.15 Команда del: видалити віддалені файли

     Щоб видалити файли на сервері наберіть del і потім ім'я файлу чи імена файлів:

del oldfile.dat
del file1.txt file2.txt
del *.o

     Файли будуть видалені без подальших підказок, навіть якщо вказано багато файлів.

     del видаляє лише файли. Ви не можете використовувати її для видалення директорії; використовуйте rmdir для цього.

     Команда rm працює так само як del.

Вгору

6.2.16 Команда mkdir: створення віддаленої директорії

     Для того щоб створити директорію на сервері наберіть mkdir і потім ім'я директорії:

mkdir newstuff

     Ви можете вказати створення декількох директорій одночасно:

mkdir dir1 dir2 dir3
Вгору

6.2.17 Команда rmdir: видаліть віддалені директорії

     Щоб видалити директорію на сервері наберіть rmdir і потім ім'я директорії чи імена:

rmdir oldstuff
rmdir *.old ancient

     Директорії будуть видалені без подальших підказок, навіть якщо багато директорій вказано.

     Більшість SFTP серверів, імовірно, скасують видалення директорії, якщо в ній є щось, отже спершу вам необхідно видалити її вміст.

Вгору

6.2.18 Команда mv: переміщення чи перейменування віддалених файлів

     Щоб перейменувати один файл не сервері наберіть mv, потім поточне ім'я файлу і потім нове ім'я файлу:

mv oldfile newname

     Ви можете також перемістити файл в іншу директорію та змінити ім'я:

mv oldfile dir/newname

     Щоб перемістити один чи більше файлів існуючу директорію, вкажіть файли (використовуючи знаки підстановки, якщо бажаєте) і, потім, цільову директорію:

mv file dir
mv file1 dir1/file2 dir2
mv *.c *.h ..

     Команди rename та ren працюють так само як mv.

Вгору

6.2.19 Команда !: запустіть локальну команду Windows

     Ви можете запускати локальні команди Windows використовуючи команду !. Це єдина команда PSFTP, яка не підкоряється правилам лапок, які наведені у розділі 6.2.1. Якщо якийсь командний рядок починається символом !, то залишок лінії буде передано прямо у Windows без подальшої передачі серверу.

     Наприклад, якщо ви бажаєте видалити існуючу копію файлу з шляху перед завантаженням оновленої версії, ви можете набрати:

psftp> !ren myfile.dat myfile.bak
psftp> get myfile.dat

для використання команди Windows ren щоб перейменувати файл на вашому локальному PC.

Вгору

6.3 Використання автентифікації публічним ключем з PSFTP

     Як і PuTTY, PSFTP може автентифікуватися з використанням публічного ключу замість пароль. Існує три шляхи якими ви можете зробити це.

     Перший, PSFTP може використовувати збережену сесію PuTTY замість імені хосту. Ви можете зробити це так:

  • Запустіть PuTTY, налаштуйте і збережіть сесію PuTTY (дивиться розділ 4.1.2), в якій вкажіть ваш файл приватного ключу (дивиться розділ 4.20.5). Ви, можливо, також бажаєте вказати ім'я користувача, яким виконувати вхід (дивиться розділ 4.14.1).

  • Тепер ви можете використовувати ім'я сесії у PSFTP замість імені хосту: наберіть psftp sessionname, де sessionname замініть на ім'я сесії, яку ви зберегли.

     Другий, ви можете передати ім'я файлу приватного ключу у командному рядку використовуючи опцію -i. Дивиться розділ 3.7.3.16 більш докладно.

     Третій, PSFTP може спробувати автентифікуватись використовуючи Pageant, якщо Pageant запущено (дивиться главу 9). Ви можете зробити це так:

  • Переконайтесь, що Pageant запущено і ваш приватний ключ збережено у ньому.

  • Вкажіть, як звичайно, користувача та ім'я хосту у PSFTP. PSFTP автоматично знайде Pageant та спробує використати ключі з нього.

     Більш докладно по автентифікації публічним ключем дивиться главу 8.

Вгору
Початок підрозділу     PuTTY 0.56

Linux coutner Український рейтинг TOP.TOPUA.NET