Linux / UNIX: Speed up SSH X11 Forwarding

Posted on in Categories , last updated January 5, 2011

I‘ve an CentOS based server and Ubuntu based desktop pc. I’m connecting to my CentOS using ssh X11 forwarding feature. However, speed over the Internet is pretty slow for certain apps such as VMWare console. How do I speed up OpenSSH X11 forwarding using Linux / UNIX desktop system?

You need to use the following syntax to speed up SSH 11 forwarding:

ssh -X -C -c cipher1,cipher2


  • -X : Turn on SSH X11 forwarding
  • -C : Requests compression of all data. You can also specifies the compression level to use if compression is enabled using the CompressionLevel option in ssh_config file. The argument must be an integer from 1 (fast) to 9 (slow, best). The default level is 6, which is good for most applications.
  • -c : Set ciphers. Blowfish is a fast block cipher; it appears very secure and is much faster than 3des. (see sshd man page for more info).

In this example, connect to the ssh server called using vivek user and start firefox browser:
$ ssh -X -C -c blowfish-cbc,arcfour [email protected]
[www544 ~] $ firefox &

You can avoid typing by editing /etc/ssh/ssh_config file as follows:

Cipher blowfish
# default line 
##Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
## see man page for more info on Ciphers 
Ciphers blowfish-cbc,aes128-cbc,3des-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc
Compression yes

Save and close the file. You can now simply connect it as follows:
$ ssh -X [email protected]
[www544 ~] $ firefox &


  • man pages – ssh, ssh_config, sshd

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

8 comment

  1. Just the second
    -C Requests compression of all data (including stdin, stdout, stderr, and data for forwarded X11 and TCP connections). The compression algorithm is the same
    used by gzip(1), and the “level” can be controlled by the CompressionLevel option for protocol version 1. Compression is desirable on modem lines and other
    slow connections, but will only slow down things on fast networks. The default value can be set on a host-by-host basis in the configuration files; see the
    Compression option.
    and this is I mean
    [quote]but will only slow down things on fast networks[/quote]

  2. I have used this command, but it doesn’t resolved my problem at expected level.
    I am trying to access my one of the development product which has huge configurations over the linux server. Whereas I am accessing it from my client Desktop by using X11 Forwarding option for its GUI development. What could be the another option to resolve the same or Does this required more bandwidth rate over network?

    Please suggest on the same.!


  3. Hi I want to know how to make it under windows?

    I tried Xshell+Xming under windows 7

    but it’s very slow…

    I tried script below
    ssh -c arcfour,blowfish-cbc -XC [email protected]

    But when I use Xshell it’s always think “-c arcfour,blowfish-cbc -XC username” is my username!

    Is there any other way to make it faster?

  4. As Wizzy noted above, CompressionLevel is available for SSH1 only (unsecure). As one can read in the man page:
    [quote]CompressionLevel …..The meaning of the values is the same as in gzip(1). Note that this option applies to protocol version 1 only.[/quote]

    Also OpenSSH 6.7 (2014-10) and 7.0 deprecated a number of ciphers of which blowfish-cbc and arcfour* ( ). Check your client’s ssh config file, and your server’s in case you move files on LANs where security is less a concern.

Leave a Comment