Software & AppsOperating SystemLinux

How To Open Desktop Display from SSH Login

Ubuntu 12

Secure Shell (SSH) is a powerful tool that system administrators use to access and manage systems remotely. One of its lesser-known features is the ability to open a desktop display from an SSH login. This article will guide you through the process, explaining various methods and commands in detail.

Quick Answer

Yes, it is possible to open a desktop display from an SSH login. There are multiple methods available, including using the -X option with SSH, using Xephyr to create a nested X session, using FreeNX, and specifying the DISPLAY environment value. Each method has its own advantages and use cases, allowing you to run individual applications or even an entire desktop environment remotely.

Method 1: Using the -X Option with SSH

The -X option in SSH allows you to forward X11 (the graphical display system used by Linux) to your local machine. This means you can run graphical applications on the remote server and have them displayed on your local machine.

The command to use this option is as follows:

ssh -X user@server

In this command, -X enables X11 forwarding, user is your username on the remote server, and server is the address of the remote server.

This method is suitable for forwarding individual applications or the taskbar/panel rather than the entire desktop.

Method 2: Using Xephyr

Xephyr is a lightweight X server that can be used to create a nested X session within your current X session. This allows you to run an entire desktop environment from your SSH session.

First, install Xephyr on your local machine. On Ubuntu, you can use the following command:

sudo apt-get install xserver-xephyr

Next, start a Xephyr session with a desired screen size:

Xephyr -ac -screen 1280x1024 -br -reset -terminate 2> /dev/null :1 &

In this command, -ac disables access control restrictions, -screen 1280x1024 sets the screen resolution, -br creates a black root window, -reset -terminate ensures that the X server is terminated when the last client disconnects, 2> /dev/null redirects error messages to /dev/null, and :1 specifies the display number.

Set the $DISPLAY variable to point to the Xephyr session:


Finally, SSH into the server and start the desktop environment. For example, to start KDE:

ssh -XfC -c blowfish user@server startkde

In this command, -XfC enables X11 forwarding and requests SSH to go to the background just before command execution, -c blowfish specifies the cipher specification for encrypting the session, and startkde starts the KDE desktop environment.

Method 3: Using FreeNX

FreeNX is a fast and secure remote desktop solution. It provides a complete desktop experience with fast performance and security.

To use FreeNX, you’ll need to install it and configure it according to your distribution’s instructions.

Method 4: Specifying the DISPLAY Environment Value

If you only want to run a graphical application from the terminal, you can specify the DISPLAY environment value. This tells the application where to display its graphical interface.

Here’s an example command:

DISPLAY=:0 gcalctool

In this command, DISPLAY=:0 sets the display to the first screen of the local machine, and gcalctool is the graphical calculator application.

You can also export the DISPLAY value to persist it in your bash session:

export DISPLAY=:0

This method is suitable for running individual graphical applications from the terminal.


Opening a desktop display from an SSH login may seem complex, but with a bit of practice, you’ll find it’s a powerful tool to have in your arsenal. Whether you’re running individual applications or an entire desktop environment, these methods provide you with the flexibility you need to get the job done.

Remember to always consider the security risks associated with SSH and take appropriate measures, such as using keys and disabling password authentication.

What is SSH?

SSH stands for Secure Shell. It is a cryptographic network protocol that allows secure remote access and control of a computer over an unsecured network.

How does SSH work?

SSH works by establishing a secure connection between a client and a server. It uses encryption to ensure the confidentiality and integrity of the data being transmitted over the network.

Can I use SSH to access Windows computers?

Yes, SSH is not limited to Linux systems. There are SSH clients and servers available for Windows as well.

What is X11 forwarding?

X11 forwarding is a feature of SSH that allows the graphical display system, X11, to be forwarded from a remote server to a local machine. It enables running graphical applications on the remote server and displaying them on the local machine.

Is X11 forwarding secure?

X11 forwarding can introduce security risks, as it allows the remote server to access the local machine’s display. It is important to ensure that you trust the remote server and take appropriate security measures, such as disabling X11 forwarding when not needed and using SSH keys for authentication.

Can I run an entire desktop environment through SSH?

Yes, it is possible to run an entire desktop environment through SSH using methods like Xephyr or FreeNX. These methods create a nested X session or provide a complete remote desktop experience, respectively.

How do I install Xephyr?

On Ubuntu, you can install Xephyr by running the command sudo apt-get install xserver-xephyr.

What is FreeNX?

FreeNX is a remote desktop solution that provides a complete desktop experience with fast performance and security. It allows you to access and control a remote desktop environment over a network.

How do I specify the `DISPLAY` environment value?

To specify the DISPLAY environment value, you can use the command DISPLAY=:0 followed by the application you want to run. For example, DISPLAY=:0 gcalctool will run the graphical calculator application on the first screen of the local machine.

What security measures should I take when using SSH?

When using SSH, it is important to take appropriate security measures. Some recommended practices include using SSH keys for authentication, disabling password authentication, using strong ciphers and key exchange algorithms, and regularly updating your SSH software to ensure you have the latest security patches.

Leave a Comment

Your email address will not be published. Required fields are marked *