sshfs se montan sin compresión ni cifrado

28

Soy un usuario muy frecuente de sshfs para montar varios discos en la red. Sin embargo, tengo una máquina muy pequeña (con un procesador atómico) desde la cual necesito montar un directorio usando sshfs.

¿Es posible deshabilitar toda la compresión, y tal vez incluso también el cifrado al montar usando sshfs, para limitar el uso de la CPU en la máquina desde la que se monta el directorio?

Bjarke Freund-Hansen
fuente
1
Estás dejando caer el cifrado y la compresión ... déjame pensar. ¿Por qué no usas FTP o SMB?
lajuette
1
Sin cifrado suena como si realmente no hubiera SSH. ¿Has considerado usar otro protocolo por completo?
WhyNotHugo
2
@lajuette: como dice Dan D. a continuación, la autenticación ssh seguirá cifrada, por lo que no se utilizarán contraseñas ni claves en texto plano. Además, ¿conoce algún protocolo que esté tan disponible como ssh donde pueda montar carpetas remotas tan fácilmente como pueda con sshfs?
Bjarke Freund-Hansen
@lajuette Quiero el mismo tipo de cosas y mi razón es que necesito algo que mis máquinas de juego retro Win98 y WinXP en cuarentena puedan usar para extraer archivos de mi PC de escritorio Linux y, de las opciones disponibles, SSH a través de WinSCP Just Works ™ a través de mi firewall de cuarentena de la lista blanca, mientras que FTP y SMB no funcionarán, no importa cuánto intente abrir los puertos correctos. (Y WebDAV puede parecer sólo ser servido por Apache, que es demasiado complicado para chroot.)
ssokolow
Ah, además, AES me brinda un rendimiento de 27Mbit en el Athlon64 3200+, maximizando la CPU, mientras que RC4 lo duplica, por lo que ningún cifrado debería acercarse aún más al máximo de la NIC de 100Mbit en el lado de WinXP. (Dado que las unidades de óxido giratorio actualmente instaladas en ambos extremos de las operaciones de copia en cuestión alcanzan un máximo de alrededor de 200Mbit cuando SMB se usa con archivos contiguos para eliminar la necesidad de buscar.)
ssokolow

Respuestas:

38

Aunque el ssh de alto rendimiento agrega un cifrado ninguno, el cifrado de arco de arco es casi tan rápido y se incluye de serie.

Utilizar: -o Ciphers=arcfour

He estado usando esto a través de la red local y obtengo aproximadamente el 85% de Ethernet de 100Mbps o aproximadamente 10.625MB / s

(En respuesta a la respuesta de vava, sshfs seguiría siendo lo que es, incluso cuando el cifrado de ssh esté desactivado, ya que el protocolo de autenticación seguiría activo sin el cual también podría estar usando telnet).


Nota para @osgx Recientemente encontré OpenSSL: Cipher Selection que incluye el siguiente gráfico:

ingrese la descripción de la imagen aquí

La siguiente es la sección de resultados de esa página. El gráfico y los resultados son cuestionables ya que no indican cómo se realizó el punto de referencia y en qué hardware, pero creo que no están tan lejos.

100,000 Kbyte / s es mi umbral para un rendimiento aceptable. Esto representa 1 núcleo de CPU (de 8 en mi caso) funcionando al 100% de utilización para transferir 780Mbit / s de datos (que es un punto de saturación razonable para un enlace Gigabit Ethernet).

RC4 es el cifrado más rápido, si está utilizando un procesador que no es compatible con AESNI .

AES-128 es el siguiente cifrado más rápido, y mucho más rápido que RC4 si tiene soporte AESNI. Es aproximadamente un 54% más lento si no lo hace. AES-256 es aún más lento y, a menos que se configure explícitamente lo contrario, cualquier navegador que admita AES-128 también admitirá AES-256.

Lo que se ha citado anteriormente muestra claramente que arcfour (y también AES con AESNI ) puede saturar un enlace Gigabit en una máquina moderna.

Si no necesita cifrado, el cifrado ninguno de hpn-ssh es aún más rápido, pero solo lo necesitaría si necesita saturar un enlace con varias veces el ancho de banda de un enlace Gigabit o si necesita un uso reducido de la CPU.

Dan D.
fuente
Gracias por una respuesta muy informativa y esto realmente acelera los sshfs :)
nXqd
3
¿No es '-o cipher = arcfour'?
asalamon74
1
¿Arcfour alcanzará velocidades de 1 Gbit?
osgx
1
@osgx Sí, creo que sí. Ver respuesta actualizada.
Dan D.
3
arcfourcifrado desaprobado y perdido en la mayoría de las instalaciones modernas de OpenSSH, puede usarlo [email protected]en su lugar.
Mesut Tasci
8

Para sftp sin cifrado, use sshfs+socat

En el lado del servidor, ejecute

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

Y del lado del cliente

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

Fuente: http://pl.atyp.us/wordpress/index.php/2009/09/file-transfer-fun/

endru
fuente
2
Si bien esto puede resolver teóricamente el problema, sería preferible resumir el contenido del enlace y proporcionar el enlace como referencia
Canadian Luke
3
Por defecto, socat TCP-LISTEN escucha en todas las interfaces. Para limitar a una interfaz de red específica (por ejemplo, localhost), use la ,bind=127.0.0.1opción Para permitir múltiples conexiones al servidor, agregue la ,forkopción. ¿Hacer un servidor de solo lectura? Agregar -Ral comando EXEC. Al final, se verá así: socat TCP-LISTEN:7777,fork,bind=127.0.0.1 EXEC:'/usr/lib/sftp-server -R'(en Arch Linux, tuve que usar /usr/lib/ssh/sftp-serveren su lugar).
Lekensteyn
Para un poco más de seguridad, también puede restringir el rango de IP con ,range=192.168.1.2/32, por ejemplo , permitir que solo una máquina en particular se conecte.
Robin Dinse
3

No hay forma de deshabilitar el cifrado; después de todo, esto es ssh. Y parece que la compresión está deshabilitada de forma predeterminada, ya que debe solicitarla con el -Cinterruptor.

Pero es posible que desee verificar la ~/.ssh/configconfiguración de su archivo con respecto a la compresión. Si agrega las siguientes líneas en la parte superior de ese archivo, la compresión debería deshabilitarse:

Host *
    Compression no
innaM
fuente
2

Puede montar con -o compression=nopara desactivar la compresión. No es posible desactivar el cifrado, no sería sshfs después de eso :) Si es lento, sugiero usar otra forma de montar un directorio, como a través de samba, nfs o ftp.

vava
fuente
NFS sería una buena opción
Jeremy L
El valor predeterminado parece ser "compresión = no" de todos modos.
WhyNotHugo
0

Creo que la compresión es algo que en realidad solo es más rápido si el tiempo de compresión se compensa con el tiempo de transferencia de datos. Por lo tanto, la compresión en una conexión lenta aumenta la velocidad hasta quizás 6 veces más rápido que sin ella. La compresión en una conexión rápida no es útil en absoluto, ya que disminuye la velocidad debido al retraso de compresión en su sistema host o en el suyo. Algunos hosts no aceptan compresión en absoluto, ya que no quieren gastar la potencia del procesador en los usuarios.

Creo que este interruptor -o Ciphers=arcfouraumentará la velocidad de cifrado a casi ningún cifrado, y -o cache=yes -o kernel_cache -o large_reads -o compression=nopuede aumentar su velocidad mucho ya que optimiza un poco los sshfs. La compresión en conexiones de baja velocidad acelerará mucho su transferencia si es posible; sobre todo lo es. Por ejemplo, lo uso con una conexión de 2 Mbit / s hacia abajo y 0,3 Mbit / s hacia arriba, y acelera la transferencia en aproximadamente 3-5 minutos en lugar de 25-30 minutos durante aproximadamente 30 MByte.

Andreas Bartels
fuente
De una manera que no está dando mejor información que la respuesta aceptada
Yass
La respuesta aceptada ni siquiera menciona la compresión. Esta respuesta puede estar ligeramente fuera de tema, pero aún tiene buenos consejos.
Alguien