Хитрощі ssh, для системного адміністратора

Після введення пароля для доступу до віддаленої машині, з'явиться змінений запрошення для введення команд, яке виглядає наступним чином:

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

SCP є складовою частиною пакету OpenSSH. Ця команда дозволяє копіювати файли або папки з віддаленого сервера (або на нього), використовуючи для цього протокол SSH. Завдяки використанню SSH, SCP є відмінною заміною для небезпечного протоколу FTP, якою широко використовується в Інтернеті. Не всі знають, що в FTP паролі передаються по мережі у вигляді відкритого тексту, а це значить, що зловмисники можуть з легкістю перехопити їх. Так що SCP це набагато більш надійна альтернатива. Найпростіший приклад використання SCP виглядає так:

При цьому локальний файл file.txt буде скопійований на віддалений сервер і поміщений в домашній каталог користувача user1. замість

/ Можна використовувати інший шлях, наприклад / tmp. / Home / public або будь-яку іншу папку, в якій користувач user1 має права на запис.

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

При цьому файл file.txt. розташований в домашньому каталозі користувача user1 у віддаленій системі, буде скопійований в локальну папку (в якій ми зараз знаходимося).

Варто звернути увагу на наступні параметри SCP:

-P port - використовувати нестандартний порт (за замовчуванням 22) - цей параметр слід використовувати якщо сервер чекає з'єднання на нестандартному порту. Цей параметр може бути корисний при з'єднанні з мережі, захищеної фаєрволом. Запуск SSH сервера на порту 443 (використовуваному для захищених HTTP з'єднань) це найкращий спосіб обійти обмеження, встановлені мережевим адміністратором.

Графічні інтерфейси для SCP

/. При цьому файли можуть копіюватися як якби вони були розташовані локально. У середовищі MS Windows є відмінний додаток WinSCP. Його інтерфейс дуже схожий на Total Commander. До речі, існує плагін для Total Commander. дозволяє виконувати SCP підключення.

SSH без паролів - генерація ключів

Пара ключів зазвичай генерується за допомогою команди ssh-keygen. Нижче показаний результат виконання такої команди. Можливе використання ключів RSA або DSA.

Коли програма просить вказати пароль для ключа, потрібно просто натиснути ENTER. При цьому буде створено ключ без пароля. Майте на увазі, що це становить загрозу безпеці, так як це знижує безпеку видаленої системи до рівня безпеки вашої локальної системи [зловмисник, який отримав доступ до секретного ключа, що зберігається у вашій локальній системі, може скористатися ним для доступу до віддалених систем - прим. пер.]. Тому робіть це на свій страх і ризик. Коли ssh-keygen закінчить свою роботу, ви побачите, що були згенеровані два ключа. Секретний ключ знаходиться в /home/user1/.ssh/id_rsa. Його не можна робити загальнодоступним ні за яких обставин. Другий ключ (відкритий) знаходиться в /home/user1/.ssh/id_rsa.pub. до нього можна надати публічний доступ.

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

/.ssh у віддаленій системі. Для цього можна скористатися наступними командами:

Зверніть увагу, що третя команда виконується на віддаленому сервері. Після цієї процедури всі дії, що виконуються на віддаленому сервері через SSH не потребуватимуть введення пароля. Це дозволить істотно спростити нашу роботу з віддаленим сервером.

Виконання команд у віддаленій системі

Тепер, коли ми можемо увійти в віддалену системи без пароля, чом би не виконати кілька віддалених команд? У деяких випадках це може бути корисно, наприклад, коли нам потрібно виконувати деяку команду щодня. Раніше ми не могли автоматизувати цей процес, так як був потрібний ручне введення пароля (або вказівка ​​його у вигляді простого тексту, що є небезпечним).

Один з цікавих способів застосування безпарольного входу це «віддалене сповіщення». Припустимо, що на віддаленому сервері працює дуже важливий процес, наприклад веб-сервер Apache. Ми хочемо отримати повідомлення, коли система починає відчувати брак ресурсів (жорсткий диск переповнений або навантаження на систему занадто висока). У цьому випадку ми можемо відправити повідомлення по електронній пошті. Але крім цього, ми можемо виконати віддалену команду, яка відтворить звуковий сигнал в нашій локальній системі. Для цього можна скористатися, наприклад, такою командою:

Ця команда, виконана скриптом на віддаленому сервері, зробить безпарольного вхід користувачем user1 на local_server (на якому ми зазвичай працюємо) і відтворить файл за допомогою команди play (яка звичайна доступна в Linux).

Перенаправлення сеансу X11 (X forwarding) - віддалений запуск графічних додатків

Однією з найменш відомих функцій SSH є перенаправлення протоколу X. Це дозволяє запускати практично будь-X додаток віддалено! Для цього всього лише потрібно додати параметр -X при з'єднанні з віддаленим сервером:

Після цього зображення всіх запущених X додатків будуть перенаправлені на ваш локальний X сервер. У файлі / etc / ssh / ssh_config можна включити постійне використання перенаправлення X11 (вказавши ForwardX11 yes). Зрозуміло, щоб цей параметр спрацював, віддалений SSH сервер повинен також підтримувати перенаправлення X11. Налаштувати це можна отредактровав файл / etc / ssh / sshd_config. Однак в більшості дистрибутивів Linux необхідні налаштування вже виконані за замовчуванням.
Наступний приклад показує запуск одиночної команди з X перенаправленням:

При цьому на віддаленому сервері буде запущена програма PSI, а її зображення буде направлено на локальний екран.

Зрозуміло, швидкість додатків, які виконуються віддалено, буде залежати в першу чергу від швидкості з'єднання з мережею. У локальній мережі вони працюватимуть практично без затримок (навіть такі речі як Totem, що відтворює фільм DivX). У разі інтернет з'єднання, DSL лінії буде достатньо, щоб додатки типу Skype або Thunderbird працювали без особливих проблем.

SSHFS - монтування видаленої папки

Працювати з файлами, розташованими на віддаленому сервері, через SSH може бути незручно, особливо якщо доводиться часто копіювати різні файли в обох напрямках. Використання протоколу fish в Midnight Commander або Konqueror є частковим вирішенням, але fish працює повільніше SSH і часто гальмує при копіюванні файлів. Ідеальним рішенням було б змонтувати віддалений ресурс, і працювати з ним через SSH. І така можливість є, завдяки sshfs і проекту fuse.

Встановити fuse і sshfs в Ubuntu [і Debian - прим. пер.] дуже просто:

Після цього залишається тільки додати користувача, якому ми хочемо надати право на монтування файлових систем через SSH, в групу fuse (використовуючи команду usermod -G -a fuse user1 [або adduser user1 fuse, що простіше - прим. Пер.] Або вручну відредагувавши файл / etc / group). Також необхідно, щоб був завантажений модуль fuse:

Після цього, ми можемо змонтувати віддалену папку за допомогою sshfs:

Зазначена вище команда змонтує папку / tmp. розташовану на віддаленому сервері, в папку

Після закінчення роботи з віддаленій системою ми можемо отмонтировать її:

Якщо ми плануємо використовувати fuse і sshfs регулярно, то потрібно додати fuse в файл / etc / modules. Інакше доведеться кожного разу завантажувати модуль fuse вручну.

висновок

Як бачите, SSH це потужний інструмент для віддаленого доступу. Якщо вам доводиться часто працювати з віддаленими UNIX системами, то вам варто освоїти його функції і використовувати їх на практиці. Уміння працювати з SSH допомагає зробити щоденну роботу більш ефективною і приємною.

Більше 8 годин витратив на пошуки інформації в інеті, що б зрозуміти чому команда виконується на моєму пк, а не на віддаленому. Після прочитання цієї статті поставив лапки і все запрацювало. )))) ДЯКУЄМО

Забув написати, під Linux теж є PuTTY сборочкі.

Схожі статті