This option will be useful if your connection is slow, such as using a modem. But when you are using a fast connection such as LAN or higher, than compression will be slow down your transfer rate.
The level of compression can be controlled using **-o** option followed by **CompressionLevel** option. But this option will only applied for SSH-1.
#### 5. Define a cipher algorithm ####
SSH provides some cipher algorithms to be used. These algorithms can be seen inside **/etc/ssh/ssh_config or ~/.ssh/config file** (if exist).
Let say you want to use **blowfish** algorithm for encrypting your SSH session. Then you can put this line into your **/etc/ssh/ssh_config or ~/.ssh/config** file :
Cipher blowfish
By default, SSH will use 3des algorithm
#### 6. Turn on debug mode ####
For some reason, we may want to debug the SSH connection that we want to create. SSH provides **-v** option to do this.
If your client has more than 2 IP Address, you might not know which IP Address is used to create a connection to the SSH server.
![More than 1 IP Address](http://linoxide.com/wp-content/uploads/2014/02/ifconfig.png)
To solve this situation, we can use -b option which will bind an IP Address to SSH connection. This IP Address will be used as the source address of the connection.
$ ssh -b 192.168.0.200 -l leni 192.168.0.103
On the server side, we can check the established connection to the server using netstat. We see that 192.168.0.200 connection is established.
![Bind address using SSH](http://linoxide.com/wp-content/uploads/2014/02/ssh_bind.png)
#### 8. Use other configuration file ####
By default, ssh will use a ssh configuration file which located in **/etc/ssh/ssh_config**. This file is applied to system wide. If you want to apply particular setting to specific user, you should put it in **~/.ssh/config** file. If you don’t see it, you can create it.
Here’s a sample of a custom **ssh_config**. This config is located in **/home/pungki directory**.
To use a specific config file, we can use **-F** option.
$ ssh -F /home/pungki/my_ssh_config 192.168.0.101
![Specify your ssh_config](http://linoxide.com/wp-content/uploads/2014/02/ssh_F.png)
### 9. Use SSH X11 Forwarding ###
For some reason, you may want to display a X11 application on the server into your client computer. SSH provides **-X** option to do this. But in order to enable this feature, we need some preparation. Here’s the settings
On the server side, you need to enable line **ForwardX11 yes or X11Forward yes** in **/etc/ssh/ssh_config**. Then restart your SSH server.
Then on the client side, type **ssh -X user@host** :
$ ssh -X leni@192.168.0.101
Once you have logged on, you can check it by typing :
$ echo $DISPLAY
You should see something like
localhost:10:0
Then to run an application, just type the command of the application. Let say you want to run xclock application. Then type :
If you pretty sure that your network is secure, then you may want to use **Trusted X11 Forwarding**. This mean that the remote X11 clients will have full access to the original X11 display. To use this option, we can use **-Y** option.
$ ssh -Y leni@192.168.0.101
![SSH _Y for trusted connection](http://linoxide.com/wp-content/uploads/2014/02/ssh_Y1.png)
### Conclusion ###
We believe that SSH is used in wide-range area. Security and flexibility is one of the SSH offer to the user. As usual we can always type **man ssh** and **man ssh_config** to display its manual pages and explore more detail.