SSH is text-only, but some COSMOS tools have a graphical interface — GNU Radio
Companion, spectrum displays, Mininet, IDEs. This page covers the two supported
ways to get a remote GUI onto your screen, and the per-OS setup for each.
Prerequisites: an approved reservation and SSH access to your domain
console — see SSH and
Remote Access.
| Method | Best for | Setup |
|---|---|---|
| X11 forwarding | one or a few graphical windows over an existing SSH session | this page |
| Chrome Remote Desktop | a full, persistent desktop (many windows, browser, file manager) | Chrome Remote Desktop |
| VNC over an SSH tunnel | advanced / custom | port tunnel on SSH Tunnels |
The rest of this page covers X11 forwarding. For the desktop option use the
dedicated Chrome Remote Desktop page above.
A graphical Linux app on a node is an X11 client; it draws onto an X server
running on your local machine. SSH forwards that traffic with the -X (or
-Y on macOS) flag. Forward it on every hop: if you SSH to the console
and then to a node, both ssh commands need the flag.
# your laptop -> console -> node, forwarding graphics the whole way
user@laptop:~$ ssh -X user@console.sb1.cosmos-lab.org
user@console:~$ ssh -X root@node1-1
root@node1-1:~$ gnuradio-companion # window opens on your local screen
You also need an X server running locally. Pick your OS:
Nothing to install — you are already running an X server. Just use -X (or
-Y) on each ssh command as shown above.
Install XQuartz (not included by default), then
log out and back in (or reboot) so the X server is available. Use -Y
instead of -X on macOS:
user@mac:~$ ssh -Y user@console.sb1.cosmos-lab.org
Windows has no built-in X server — install one, plus an SSH client. Common free
options:
MobaXterm (all-in-one, recommended): open a new SSH session to
console.<domain>.cosmos-lab.org; X forwarding is on by default, so launching a
graphical app just works. Add a second hop to the node inside that session.
PuTTY + VcXsrv (worked example → node1-1 on sb1):
console.sb1.cosmos-lab.org.localhost:0.ssh -X root@node1-1 and start-X/-Y on every hop. On macOS use-Y. See also the FAQ and