sshfs монтується без стиснення чи шифрування


28

Я дуже часто користуюся sshfs для монтажу різних дисків по мережі. Однак у мене дуже маленька машина (з атомним процесором), з якої мені потрібно змонтувати каталог за допомогою sshfs.

Чи можна відключити всі компресії, а можливо навіть і шифрування при монтажі за допомогою sshfs, щоб обмежити використання процесора на машині, з якої встановлений каталог?


1
Ви кидаєте шифрування та стиснення ... дозвольте мені подумати. Чому ви не використовуєте FTP або SMB?
lajuette

1
Жодне шифрування не звучить як SSH насправді. Чи планували ви взагалі використовувати інший протокол?
WhyNotHugo

2
@lajuette: Як Дан Д. зазначає нижче, ssh-автентифікація все ще буде зашифрована, тому немає паролів чи ключів у простому тексті. Крім того, чи знаєте ви будь-який протокол, який доступний так само легко, як і ssh, де я можу легко монтувати віддалені папки так само легко, як я можу, за допомогою sshfs?
Bjarke Freund-Hansen

@lajuette Я хочу те саме, і моя причина полягає в тому, що мені потрібно щось, що мої карантинні ретро-ігрові машини Win98 і WinXP можуть використовувати для витягування файлів з мого робочого ПК Linux і, з доступних варіантів, SSH через WinSCP Just Works ™ через мій брандмауер карантинного білого списку, поки FTP та SMB не працюватимуть, як би я не намагався відкрити потрібні порти. (І WebDAV, мабуть, може обслуговуватися тільки Apache, що є занадто складним для chroot.)
ssokolow

О, плюс, AES дає мені пропускну здатність 27 Мбіт на Athlon64 3200+, максимізуючи процесор, тоді як RC4 подвоює це, тому жодне шифрування не повинно бути ще ближче до максимізації 100 Мбіт NIC на стороні WinXP. (Враховуючи, що обертові накопичувачі іржі, встановлені в даний час на обох кінцях операцій з копіювання, максимум на рівні близько 200 Мбіт, коли SMB використовується з суміжними файлами для усунення необхідності пошуку.)
ssokolow

Відповіді:


38

Незважаючи на те, що високоефективний ssh додає жодний шифр, шифрова дуга майже так само швидка і є стандартною.

Використання: -o Ciphers=arcfour

Я використовую це через локальну мережу, і я отримую близько 85% Ethernet 100Mbps або приблизно 10.625MB / s

(У відповідь вави відповідь, sshfs все одно буде тим, що є, навіть коли шифрування ssh вимкнено, оскільки протокол аутентифікації все ще буде активним, без якого ви могли б також використовувати telnet.)


Примітка для @osgx Нещодавно я знайшов OpenSSL: Cipher Selection, який включає такий графік:

введіть тут опис зображення

Далі - розділ результатів на цій сторінці. Графік та результати сумнівні, оскільки в них не вказано, як було виконано тест та на якому апаратному забезпеченні, але я думаю, що вони не так вже й далекі.

100 000 Кбайт / с - мій поріг прийнятної продуктивності. Це являє собою 1 ядро ​​процесора (з 8 в моєму випадку), що працює на 100% використання для передачі 780 Мбіт / с даних (що є розумною точкою насичення для гігабітного зв'язку Ethernet).

RC4 - це найшвидший шифр, якщо ви використовуєте процесор, який не підтримує AESNI .

AES-128 - наступний найшвидший шифр і набагато швидший, ніж RC4, якщо у вас є підтримка AESNI. Це приблизно на 54% повільніше, якщо ви цього не зробите. AES-256 все ще повільніше, і якщо явно не налаштовано інше, будь-який браузер, який підтримує AES-128, також підтримуватиме AES-256.

Згадане вище чітко свідчить про те, що arcfour (а також AES з AESNI ) може наситити гігабітну ланку на сучасній машині.

Якщо вам не потрібно шифрування, жоден шифр від hpn-ssh ще швидший, але він вам знадобиться лише в тому випадку, якщо вам потрібно наситити посилання в кілька разів більше пропускної здатності гігабітного посилання або якщо вам потрібно скоротити використання процесора.


Дякую за дуже інформативну відповідь, і це дійсно пришвидшило sshfs :)
nXqd

3
Хіба це не "-o шифр = arcfour"?
asalamon74

1
Чи досягне аркур швидкість 1 Гбіт?
osgx

1
@osgx Так, я б так вважав. Дивіться оновлену відповідь.
Ден Д.

3
arcfourзастарілий шифр і відсутній у більшості сучасних установок OpenSSH, Ви можете використовувати його chacha20-poly1305@openssh.comзамість.
Mesut Tasci

8

Для sftp без шифрування використовуйте sshfs+socat

На стороні сервера запустіть

socat TCP4-LISTEN:7777 EXEC:/usr/lib/sftp-server

І на стороні клієнта

sshfs -o directport=7777 remote:/dir /local/dir

Джерело: http://pl.atyp.us/wordpress/index.php/2009/09/file-transfer-fun/


2
Хоча це теоретично може вирішити проблему, бажано було б узагальнити вміст посилання та надати посилання як посилання
канадський Лука REINSTATE MONICA

3
За замовчуванням socat TCP-LISTEN слухає всі інтерфейси. Щоб обмежитись одним певним мережевим інтерфейсом (наприклад, localhost), скористайтеся ,bind=127.0.0.1опцією. Щоб дозволити кілька підключень до сервера, додайте ,forkопцію. Створення сервера лише для читання? Додати -Rдо команди EXEC. Зрештою, це буде виглядати приблизно так: socat TCP-LISTEN:7777,fork,bind=127.0.0.1 EXEC:'/usr/lib/sftp-server -R'(у Arch Linux я повинен був /usr/lib/ssh/sftp-serverзамість цього використовувати ).
Лекенштейн

Для трохи більшої безпеки, ви також можете обмежити діапазон IP, наприклад ,range=192.168.1.2/32, дозволити підключення лише однієї конкретної машини.
Робін Дінзе

3

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

Але ви, можливо, захочете перевірити свій ~/.ssh/configфайл на наявність параметрів щодо стиснення. Якщо ви додаєте наступні рядки у верхній частині цього файлу, стиснення слід вимкнути:

Host *
    Compression no

2

Ви можете встановити, -o compression=noщоб вимкнути стиснення. Неможливо вимкнути шифрування, не було б після цього sshfs :) Якщо це повільно, я пропоную скористатися іншим способом монтажу каталогу, наприклад, через samba, nfs або ftp.


NFS був би хорошим вибором
Джеремі Л

Здається, за замовчуванням все одно є "стиснення = ні".
WhyNotHugo

0

Я думаю, що стиснення - це щось дійсно швидше, якщо час на стиснення компенсується часом передачі даних. Таким чином, стиснення на повільному з'єднанні збільшує швидкість до, можливо, в 6 разів швидшого, ніж без. Стиснення при швидкому з'єднанні взагалі не корисне, оскільки воно знижує швидкість через затримку стиснення на вашій або хост-системі. Деякі хости взагалі не приймають стиснення, оскільки вони не хочуть витрачати енергію процесора на користувачів.

Я думаю, що цей перемикач -o Ciphers=arcfourзбільшить швидкість шифрування майже до шифрування, і -o cache=yes -o kernel_cache -o large_reads -o compression=noможе значно збільшити вашу швидкість, оскільки він трохи оптимізує sshfs. Стиснення на низькошвидкісних з'єднаннях значно пришвидшить вашу передачу, якщо можливо стиснення; в основному це так. Наприклад, я використовую його при зниженні на 2 Мбіт / с і на 0,3 Мбіт / с, і це прискорює передачу приблизно на 3-5 хвилин замість 25-30 хвилин на 30 Мбіт.


У такий спосіб ви не даєте кращої інформації, ніж прийнята відповідь
1717

Прийнята відповідь навіть не згадує стиснення. Ця відповідь може бути трохи поза темою, але все ж має гарну пораду.
Хтось
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.