монтирование sshfs без сжатия или шифрования


28

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

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


1
Вы отбрасываете шифрование и сжатие ... дайте мне подумать. Почему вы не используете FTP или SMB?
Ладжет

1
Нет шифрования звучит как SSH на самом деле. Рассматривали ли вы вообще использование другого протокола?
WhyNotHugo

2
@lajuette: как Дэн Д. заявляет ниже, ssh-аутентификация по-прежнему будет зашифрована, поэтому пароли и ключи в открытом тексте отсутствуют Кроме того, знаете ли вы какой-либо протокол, который так же легко доступен, как ssh, где я могу монтировать удаленные папки так же легко, как и с sshfs?
Бьярке Фрейнд-Хансен

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

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

Ответы:


38

Хотя высокопроизводительный ssh ​​не добавляет ни одного шифра, шифр arcfour работает почти так же быстро и входит в стандартную комплектацию.

Использование: -o Ciphers=arcfour

Я использую это по локальной сети, и я получаю около 85% 100 Мбит / с Ethernet или около 10,625 МБ / с

(В ответном ответе vava sshfs все равно будет таким, каким он является, даже если шифрование ssh отключено, поскольку протокол аутентификации все еще активен, без чего вы могли бы также использовать telnet.)


Примечание для @osgx Недавно я обнаружил OpenSSL: Выбор шифра, который включает следующий график:

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

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

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
Достигнет ли ArcFour скорости 1 Гбит?
OSGX

1
@osgx Да, я так думаю. Смотрите обновленный ответ.
Дэн Д.

3
arcfourшифр устарел и отсутствует в большинстве современных установок OpenSSH, вы можете использовать chacha20-poly1305@openssh.comвместо этого.
Месут Таски

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 МБ.


Таким образом, вы не даете более качественную информацию, чем принятый ответ
yass

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