SSH

У комп'ютерних мережах ssh або "Secure Shell" є мережевим протоколом дозволяє встановлювати зв'язок між локальним і віддаленим (remote) комп'ютерами. При цьому застосовується криптографія з публічним ключем (public key), для аутентифікації віддаленого комп'ютера або для дозволу автентифікувати користувача з віддаленого комп'ютера. ssh гарантує конфіденційність і цілісність передачі даних між обома комп'ютерами, використовуючи кодування і MAC (message authentication codes). Типова сфера застосування ssh - вхід в систему на віддаленому (remote) комп'ютері та виконання команд на ньому, також підтримується тунелювання і форвардинг будь-яких портів TCP і X11. Файли можуть передаватися по включеним у ssh протоколам sftp або scp. У базовій установці сервер ssh використовує порт TCP 22. Посилання з Вікіпедії

Безпека протоколу SSH

Як правило, реєстрація корінь через SSH повинна бути заборонена. Взагалі варто уникати входу в систему як корінь, що дозволить отримати додаткові гарантії безпеки. Так само, з метою обмежити можливість проведення атак типу brute force (перебір паролів по словнику, що вимагає значного часу), варто обмежити користувачів як в кількості спроб для входу в систему, так в тривалості відкриття вікна реєстрації (до 10 хвилин)

Вищевказані заходи можна реалізувати шляхом редагування файлу конфігурації (в якому, улюбленому Вами редакторі):

/etc/ssh/sshd_config

Шукаємо і змінюємо ризиковані установки.

Наступні установки повинні бути змінені:

Порт <бажаний порт>: цей запис повинен вказувати на порт в маршрутізаторe, який вільно з'єднаний до лінії. Якщо Ви не знаєте, що це таке, варто ще раз обдумати застосування ssh для Remote управління. Debian встановлює порт 22 по замовчуванню. Проте доцільно, використовувати порт поза зоною стандартного сканування, тому ми використовуємо, наприклад, порт 5874:

Port 5874

ListenAddress <IP комп'ютера або інтерфейсу мережі>: Так як порт передається далі роутеру, комп'ютер повинен використовувати статичний IP адресу, якщо тільки не використовується ніякої локальний DNS сервер. Ми використовуємо статичний IP для прикладу:

ListenAddress 192.168.2.134

Хоча у Debian встановлена ​​версія протоколу ssh 2, але, звичайно, варто упевнитися в цьому ще раз:

LoginGraceTime <часовий проміжок процесу реєстрації>: дозволений для реєстрації проміжок часу складає як стандарт абсурдні 600 секунд. Так як 10 хвилин явно надлишкові, щоб ввести ім'я користувача та пароль, ми встановимо кілька більш розсудливий проміжок часу:

LoginGraceTime 45

Тепер є 45 секунд для входу, і хакер не буде мати по 10 хвилин на кожну спробу зламати пароль

PermitRootLogin <yes>: чому тут Debian видав дозвіл на вхід в систему як root, не зрозуміло. Ми виправляємо на 'no':

PermitRootLogin no
StrictModes yes

MaxAuthTries <xxx>:Kількість дозволених спроб реєстрації, Ви не повинні встановлювати більше ніж 3 або 4

MaxAuthTries 2

Наступні установки повинні бути додані, оскільки вони відсутні за замовчуванням:

AllowUsers <user names with spaces allowed to access via ssh>

AllowUsers <xxx>: только зарегистрированные пользователи могут использовать доступ, и только с пользовательскими правами:

AllowUsers whomevertheuseris

PermitEmptyPasswords <xxx>: Дайте Вашій користувачеві прекрасний довгий пароль, який за мільйони років не можна було б підібрати. Користувач з доступом ssh повинен бути єдиним. Якщо він вже зареєстрований, то може з su стати root:

PermitEmptyPasswords no

PasswordAuthentication <xxx>: В звичайному разі, коли не використовують KeyLogin треба мати значення 'yes'.

PasswordAuthentication yes [unless using keys]

В кінці кінців:

service ssh restart

Тепер Ви маєте достатньо надійну конфігурацію ssh. І нагадаємо ще раз, що краще, перш за все додати користувача спеціально для використання ssh

Примітка: Якщо ssh підключення відмовляється і отримують повідомлення про помилку, шукайте в $ HOME прихований каталог .ssh Потім видаліть файл known_hosts і спробуйте знову встановити зв'язок. Ця проблема зустрічається переважно, якщо IP-адреса виділяється динамічно (DCHP)

Використовувані програми X-Windows через SSH

ssh-X дозволяє зарегістріроввшісь на віддаленому комп'ютері працювати з його програмами з графічним інтерфейсом (які насправді запускаються на тому комп'ютері, і тільки відбиваються локально). як користувач $ (зверніть увагу: X у верхньому регістрі):

$ ssh -X username@xxx.xxx.xxx.xxx (or IP)

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

$ iceweasel OR oocalc OR oowriter OR kspread

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

$  ssh -C -X username@xxx.xxx.xxx.xxx (or IP)

Прочтіть:

$man ssh

Примітка: Якщо ssh підключення відхилено і Ви отримали повідомлення про помилку, знайдіть в $ HOME прихований каталог . Ssh . Видаліть файл known_hosts та спробуйте заново встановити зв'язок. Ця проблема зустрічається переважно, якщо IP-адреса виділяється динамічно (DCHP)

Копіювання файлів і каталогів віддалено через SSH з scp

SCP використовує командний рядок (термінал / CLI), для копіювання файлів між комп'ютерами в мережі. Вона використовує SSH аутентифікації і забезпечення безпеки для передачі даних, тому УПП запросить пароль або парольну фразу, який необхідний для аутентифікації.

Якщо у вас є SSH права на віддалений ПК або сервер, SCP дозволяє копіювати розділи, каталоги або файл, і з того комп'ютера, на вказане місце або пункт призначення за вашим вибором, де у Вас також є права доступу. Наприклад, це може включати ПК або сервер у вас є дозвіл на доступ до вашої локальної мережі (або де-небудь у світі), щоб дозволити передачу даних на USB-жорсткий диск, підключений до комп'ютера.

Ви можете рекурсивно скопіювати цілі розділи і каталоги з опцією scp-r . Зверніть увагу, що SCP-р прямуєте символічні посилання, що зустрічаються в обхід дерева.

Приклади:

Приклад 1: Копіювання розділу:

scp -r <user>@xxx.xxx.x.xxx:/media/disk1part6/ /media/diskXpartX/

Приклад 2: Копіювання каталог розділу, в даному випадку каталог фотографій в $ HOME:

scp -r <user>@xxx.xxx.x.xxx:~/photos/ /media/diskXpartX/xx

Приклад 3: Копіювання файлу з каталогу на розділ, в цьому випадку файл в $ HOME:

scp <user>@xxx.xxx.x.xxx:~/filename.txt /media/diskXpartX/xx

Приклад 4: Копіювання файлу на розділn:

scp <user>@xxx.xxx.x.xxx:/media/disk1part6/filename.txt /media/diskXpartX/xx

Приклад 5: Якщо ви вже знаходитеся в диску / каталозі, з якого Ви хочете скопіювати будь-яку директорію або файли, використовуйте ' . ' (крапка):

scp -r <user>@xxx.xxx.x.xxx:/media/disk1part6/filename.txt . 

Приклад 6: Для копіювання файлів з ​​комп'ютера / сервера на інший, (використовуйте scp -r якщо це копіювання розділу або каталогу):

scp /media/disk1part6/filename.txt <user>@xxx.xxx.x.xxx:/media/diskXpartX/xx

Прочтіть:

man scp

Віддалений доступ до SSH з X-Forwarding з Windows-ПК:

* Скачайте і запишіть на компактний диск або DVD Cygwin XLiveCD
* Покладіть диск в CD-ROM ПК з Windows і дочекайтеся автозапуску.
Натисніть кнопку "continue", поки вікна оболонки спливає і введіть:

ssh -X username@xxx.xxx.xxx.xxx

Примітка: xxx.xxx.xxx.xxx є IP в віддаленого Linux-комп'ютера або його URL (наприклад dyndns.org), звичайно ще ім'ям користувача, і з одним обліковим записом користувача, яка існує на віддаленому комп'ютері. Після успішного входу, запустіть наприклад "KMail" і перевірте електронну пошту!

Важливо: переконайтеся, що у hosts.allow є запис, щоб дозволити доступ з ПК з інших мереж. Якщо ви перебуваєте під захистом NAT-брандмауер або за брандмауером маршрутизатора, переконайтеся що порту 22 направляється у ваш Linux комп'ютер

SSH в Konqueror

Konqueror і Krusader мають підтримку ssh і можуть підключатися через sftp://.

Як це працує:
1) Відкрийте вікно Konqueror
2) Введіть у рядку адреси: sftp://username@ssh-server.com

Приклад 1.У спливаючому вікні буде запитано пароль ssh:

sftp://aptosid1@remote_hostname_or_ip

Приклад 2.Безпосереднє з'єднання, без запиту пароля:

sftp://username:password@remote_hostname_or_ip

Застосування в локальній мережі.(Примітка: введіть пароль у спливаючому вікні та натисніть ОК)

sftp://username@10.x.x.x or 198.x.x.x.x

Таким чином встановлюється SSH з'єднання. У вікні Konqueror можна працювати з файлами на сервері ssh також, як з локальними.

Примітка: Якщо Ви змінили використовується за умовчанням ssh порт з 22 на іншій, то необхідно вказати який порт sftp повинен використовувати:

sftp://user@ip:port

'user@ip:port' стандартна команда для багатьох програм, таких як sftp and smb.

Використання SSHFS

SSHFS - це простий, швидкий і надійний метод використовує FUSE, для приєднання віддаленої файлової системи. З боку сервера необхідний тільки працюючий ssh-daemon.

На стороні клієнта Ви ймовірно повинні встановити sshfs: fuse і groups встановлені по замовчуванню на aptosid eros:

З боку клієнта спершу інсталюється sshfs:

apt-get update && apt-get install sshfs

Тепер ви повинні вийти з системи і зайти в неї знову

Приєднати віддалену файлову систему дуже просто:

sshfs username@remote_hostname:directory local_mount_point

Taм де є username мається на увазі ім'я користувача на віддаленому хості:

Якщо не вказується ніякої певний каталог, буде відкрито домашній каталог віддаленого користувача. Будь ласка, зверніть увагу: двокрапка : необхідно, навіть якщо каталог не вказується!

Після підключення віддалений каталог поводиться як локальна файлова система. Можна шукати файли, читати та змінювати їх, а також запускати скрипти як на локальній файловій системі..

Bід'єднання:

fusermount -u local_mount_point

При регулярному використанні SSHFS рекомендується внести запис в / і т.д. / Fstab виду:

sshfs#username@remote_hostname://remote_directory /local_mount_point fuse user,allow_other,uid=1000,gid=1000,noauto,fsname=sshfs#username@remote_hostname://remote_directory  0 0

Потім закоментуйте user_allow_other in /etc/fuse.conf:

 
 # Allow non-root users to specify the 'allow_other' or 'allow_root'
 # mount options.
 #
 user_allow_other

Це робить можливим кожному користувачеві групи fuse під'єднати файлову систему відомою командою:

mount /path/to/mount/point

Від'єднання можна зробити наступною командою:

umount /path/to/mount/point

А цією командою перевіряється, - членство в групі fuse:

cat /etc/group | grep fuse

Відповідь має бути виглядати наприклад таким чином:

fuse:x:117: <username>

Якщо ім'я користувача (username) не вказано, використовуйте команду adduser як root:

adduser <username> fuse

Тепер ваше ім'я користувача повинні бути перераховані, і ви повинні бути в змозі виконати команду:

Увага: Для того, щоб зміни вступили в силу треба вийти з системи і перереєструватися. Тепер ім'я користувача повинно бути зазначено, і такі команди стають здійсненні

mount local_mount_point

та

umount local_mount_point
Сторінка останний раз переглянута 01/11/2011 0650 UTC