Ай да linux! Деякі можливості ssh

Ай да linux! Деякі можливості ssh
Бувають іноді ситуації коли необхідно передати будь-які файли, а з засобів зв'язку є тільки ssh. Звичайно можна поставити ftp-сервер або що-небудь ще, але погодьтеся, це не зовсім зручно, коли можна скористатися готовими рішеннями. Загалом неважливо, у нас є доступ до ssh і ми хочемо отримати максимум можливостей.

scp # 91; -1246BCpqrv # 93; # 91; -c cipher # 93; # 91; -F ssh_config # 93; # 91; -i identity_file # 93;
# 91; -l limit # 93; # 91; -o ssh_option # 93; # 91; -P port # 93; # 91; -S program # 93;
# 91; # 91; user @ # 93; host1: # 93; file1. # 91; # 91; user @ # 93; host2: # 93; file2

Виглядає трохи страшно, але не бійтеся - все просто.

scp [опції] [джерело] [приймач]

Розглянемо ключі і опції більш докладно:

-1 примусово використовувати 1-ю версію протоколу
-2 відповідно другу
-4 використовувати тільки IPv4
-6 тільки IPv6
-B вибір пакетного режиму (запобігає запит пароля або ключової фрази)
-C дозволити стиснення
-p зберігати час редагування файлу
-q не виводити попередження в консоль
-r рекурсивний обхід каталогу
-v режим налагодження
-c спосіб шифрування даних

-F ssh_config вказати альтернативний конфиг-файл ssh
-i identity_file вказати альтернативний файл ключів
-l limit обмеження швидкості передачі в Kbit / s
-o ssh_option вказівку альтернативних опцій для ssh (для подробиць man 5 ssh_config)
-P port вказівку порту
-S program взаємодія з други програмами

Пора переходити до найсмачнішою частини, до прикладів.

Копіюємо локальний file на віддалений хост командою:

scp file user @ host: / home

Копіюємо з віддаленого хоста:

scp -P 22 file user @ host: / home

За замовчуванням scp використовує алгоритм Triple-DES для шифрування даних, що передаються, але якщо використовувати Blowfish, то можна домогтися більш високої швидкості передачі даних. Для цього потрібно додати ключ -c blowfish:

scp -c blowfish file user @ host: / home

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

scp -С file user @ host: / home

Передавати файли таким чином можна не тільки між linux-машинами, а й windows теж. Зустрічайте:

  • WinSCP - графічний SCP-клієнт для Windows
  • PSCP - SCP-клієнт для Windows, входить в PuTTY

Також, не можна не сказати про sftp. Sftp це інтерактивна програма передачі файлів, подібна ftp, яка виконує передачу даних в зашифрованому вигляді, використовуючи ssh. Думаю, що слід внести деяку ясність. SFTP (SSH File Transfer Protocol) - протокол прикладного рівня, призначений для копіювання і виконання інших операцій з файлами поверх надійного і безпечного з'єднання. Протокол розроблений групою IETF як розширення до SSH-2, однак SFTP допускає реалізацію і з використанням інших протоколів сеансового рівня. Існує хибна думка, що SFTP це просто звичайний FTP, що працює поверх SSH. Насправді SFTP - це новий протокол, розроблений з нуля. Також не варто плутати з Simple File Transfer Protocol.

У порівнянні з протоколом SCP, який дозволяє тільки копіювати файли, SFTP дає можливість виконувати набагато більше операцій з ними: наприклад, докачувати файл після розриву з'єднання або видаляти файл на сервері і багато інших операцій. З цієї причини існують графічні і псевдографічні клієнти для SFTP, але немає таких, хто використовував би тільки SCP в чистому вигляді.

SFTP покликаний бути більш платформонезавісимость ніж SCP. Зокрема, як розкривати файлові шаблони, описується в самому стандарті - і це не залежить від сервера. У той час як в SCP розкриття файлових шаблонів було повністю на совісті сервера, точніше командного інтерпретатора користувача. SCP-сервери більш поширені для Unix, а SFTP як для Unix, так і для Windows.

SFTP-сервер вбудований в OpenSSH. Він реалізується за допомогою програми

Для того щоб включити sftp-server в sshd, необхідно вказати його в файлі конфігурації

в якості підсистеми:

Subsystem sftp / usr / lib / openssh / sftp-server

Як правило, це рядок вже вказана в файлі конфігурації sshd за замовчуванням, так що SFTP працює відразу і не вимагає ніяких додаткових дій для включення.

Всі ключі та опції властиві scp, так само підходять і sftp, що дуже зручно. Тому описувати вдруге сенсу не бачу, зупинюся лише на особливостях.

sftp # 91; -1246Cpqrv # 93; # 91; -B buffer_size # 93; # 91; -b batchfile # 93; # 91; -c cipher # 93;
# 91; -D sftp_server_path # 93; # 91; -F ssh_config # 93; # 91; -i identity_file # 93;
# 91; -o ssh_option # 93; # 91; -P port # 93; # 91; -R num_requests # 93; # 91; -S program # 93;
# 91; -s subsystem | sftp_server # 93; host
sftp # 91; user @ # 93; host # 91; : File. # 93;
sftp # 91; user @ # 93; host # 91; : dir # 91; / # 93; # 93;
sftp -b batchfile # 91; user @ # 93; host

lumask umask завдання локального umask
mkdir path створення віддаленого каталогу
progress висновок поточного статусу
put [-Ppr] local-path [remote-path] завантаження файлів на сервер -P і -p збереження прав і часу зміни файлів
pwd покаже віддалений робочий каталог
rename oldpath newpath перейменування віддалених файлів
rm path видалення файлу
rmdir path видалення каталогу
symlink oldpath newpath створення символьного посилання
help довідка

З'єднання з сервером:

після з'єднання ми отримаємо консоль sftp> і можемо приступати до введення команд:

скопіюємо local_file на віддалений хост: