|
|
||
| Початок підрозділу PuTTY 0.56 | ||
|
Зміст
Глава 1 Глава 2 Глава 3 Глава 4 Глава 5 Глава 6 Глава 7 Глава 8 Глава 9 Глава 10 Додаток A Додаток B Додаток C Додаток D ![]() |
Глава 6: Використання PSFTP для безпечної передачі файлів
PSFTP, SFTP клієнт PuTTY, це утиліта для захищеної передачі файлів між комп'ютерами з використанням SSH з'єднання. PSFTP відрізняється від 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 В цьому місці ви можете набрати 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 і потім ви можете запустити сценарій набравши: 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 ви можете побачити це: C:\>psftp fred@hostname -bc -b batchfile 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).
Крапка (.) на початку імені файлу спеціально не розглядається, за виключенням деякий 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 всього, що знаходиться за ним. Наприклад, ‘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 всього, що знаходиться за ним. Наприклад, ‘put -- -silly-name-’). 6.2.11 Команди mget та mput: отримайте чи передайте багато файлівmget працює майже також як get, за виключенням, що вона дозволяє вказувати більше ніж один файл для отримання за раз. Ви можете зробити це двома шляхами:
Кожен аргумент mget розглядається як ім'я файлу, що підлягає отриманню (на відміну від get, який інтерпретує не більш ніж один аргумент як це, а другий аргумент як альтернативне ім'я, під яким буде збережено отриманий файл) чи вираз знаків підстановки, який означає більш ніж один файл. Опції -r та -- з get також доступні для mget. mput аналогічна put, з такими ж відмінностями. 6.2.12 Команди reget та reput: відновлення передачі файлівЯкщо передача файлу перерветься на півдорозі і ви залишитеся з половиною файлу, яка збережена на вашому диску, ви можете завершити передачу файлу використовуючи команди reget и reput. Вони працюють точно як команди get та put, але вони перевіряють наявність на половину записаного файлу цілі і починають передачу звідти, де вона перервалась. Синтаксис reget і reput такий самий як синтаксис get і put: reget myfile.dat Ці команди головним чином призначені для завершення перерваних передач. Вони вважають, що віддалений файл чи структура директорії жодним чином не змінювались; якщо вони змінювались, ви можете отримати пошкоджений файл. Зокрема, опція -r не відслідковує змін файлів і директорій вже повністю переданих. 6.2.13 Команда dir: список віддалених файлівЩоб побачити список файлів в вашій робочій директорії просто наберіть dir. Ви можете також побачити список вмісту іншої директорії набравши dir і далі ім'я директорії: dir /home/fred Ви можете вивести перелік підмножини вмісту директорії використовуючи знаки підстановки: dir /home/fred/*.txt Команда ls працює так само як dir. 6.2.14 Команда chmod: змініть дозволи на віддалених файлахPSFTP дозволяє вам змінювати дозволи на файлах і директоріях на сервері. Ви можете зробити це використовуючи команду chmod, яка працює дуже схоже на Unix команду chmod. Базовий синтаксис це chmod режим файлу (chmod modes file), де режим є модифікація в дозволах на файлі і файл це ім'я файлу, який модифікується. Ви можете вказати багато файлів чи знаки підстановки. Наприклад: chmod go-rwx,u+w privatefile Параметр режим може бути послідовністю восьми цифр у стилі Unix. (Якщо ви не знаєте що це, це означає що ви, мабуть, не будете їх використовувати!) Альтернативно це може бути список модифікацій, які допускаються, які розділені комами. Кожна модифікація складається з:
Отже, приклади зверху виконають:
В додаток до всього цього є декілька спеціальних можливостей для Unix систем. На не Unix системах вони навряд корисні:
6.2.15 Команда del: видалити віддалені файлиЩоб видалити файли на сервері наберіть del і потім ім'я файлу чи імена файлів: del oldfile.dat Файли будуть видалені без подальших підказок, навіть якщо вказано багато файлів. del видаляє лише файли. Ви не можете використовувати її для видалення директорії; використовуйте rmdir для цього. Команда rm працює так само як del. 6.2.16 Команда mkdir: створення віддаленої директоріїДля того щоб створити директорію на сервері наберіть mkdir і потім ім'я директорії: mkdir newstuff Ви можете вказати створення декількох директорій одночасно: mkdir dir1 dir2 dir3 6.2.17 Команда rmdir: видаліть віддалені директоріїЩоб видалити директорію на сервері наберіть rmdir і потім ім'я директорії чи імена: rmdir oldstuff Директорії будуть видалені без подальших підказок, навіть якщо багато директорій вказано. Більшість SFTP серверів, імовірно, скасують видалення директорії, якщо в ній є щось, отже спершу вам необхідно видалити її вміст. 6.2.18 Команда mv: переміщення чи перейменування віддалених файлівЩоб перейменувати один файл не сервері наберіть mv, потім поточне ім'я файлу і потім нове ім'я файлу: mv oldfile newname Ви можете також перемістити файл в іншу директорію та змінити ім'я: mv oldfile dir/newname Щоб перемістити один чи більше файлів існуючу директорію, вкажіть файли (використовуючи знаки підстановки, якщо бажаєте) і, потім, цільову директорію: mv file dir Команди rename та ren працюють так само як mv. 6.2.19 Команда !: запустіть локальну команду WindowsВи можете запускати локальні команди Windows використовуючи команду !. Це єдина команда PSFTP, яка не підкоряється правилам лапок, які наведені у розділі 6.2.1. Якщо якийсь командний рядок починається символом !, то залишок лінії буде передано прямо у Windows без подальшої передачі серверу. Наприклад, якщо ви бажаєте видалити існуючу копію файлу з шляху перед завантаженням оновленої версії, ви можете набрати: psftp> !ren myfile.dat myfile.bak для використання команди Windows ren щоб перейменувати файл на вашому локальному PC. 6.3 Використання автентифікації публічним ключем з PSFTPЯк і PuTTY, PSFTP може автентифікуватися з використанням публічного ключу замість пароль. Існує три шляхи якими ви можете зробити це. Перший, PSFTP може використовувати збережену сесію PuTTY замість імені хосту. Ви можете зробити це так:
Другий, ви можете передати ім'я файлу приватного ключу у командному рядку використовуючи опцію -i. Дивиться розділ 3.7.3.16 більш докладно. Третій, PSFTP може спробувати автентифікуватись використовуючи Pageant, якщо Pageant запущено (дивиться главу 9). Ви можете зробити це так:
Більш докладно по автентифікації публічним ключем дивиться главу 8. |
|
| Початок підрозділу PuTTY 0.56 | ||