300 | | Because SSH is a text-based interface, we need additional tools to run graphical applications such as gnuradio companion or mininet on the machines in the testbed. There are several options available: X forwarding, chrome remote desktop, and vnc over an ssh tunnel (we will not discuss this option here, but anyone who is familiar with this method should feel free to use it). |
301 | | |
302 | | ==== X Forwarding ==== |
303 | | X11 is the default windowing system on linux systems. Graphical applications on linux are X11 clients which communicate with the X server software, which is what renders the clients onto the screen and handles requests from the clients for user input. The communication between client applications and an X server can be forwarded over an ssh session, which is how [https://en.wikipedia.org/wiki/X_Window_System#Remote_desktop X forwarding] displays remote applications-- the application runs on the remote machine, but uses the ssh session to communicate with an X server on your local machine. |
304 | | |
305 | | [[CollapsibleStart(Linux)]] |
306 | | If you are using linux, you shouldn't need to install anything to use X forwarding, because you're already running an X server on your local machine. You simply have to run your ssh session using the -Y flag on the command line: |
307 | | {{{#!shell-session |
308 | | ssh -Y -t cosmos-user@sb.cosmos-lab.org |
309 | | }}} |
310 | | Keep in mind that you will have to use the flag for each ssh command you use, so if you ssh to a console and then from the console to the node, you will have to use the flag in both ssh commands in order to forward the applications all the way back to your local machine. |
311 | | |
312 | | [[CollapsibleEnd]] |
313 | | [[BR]] |
314 | | |
315 | | [[CollapsibleStart(Windows)]] |
316 | | In addition to ssh client, remote X11 access on Windows requires installation of X11 Server. There are a number of open source or free servers available including: |
317 | | 1. [https://sourceforge.net/projects/vcxsrv/ VcXsrv] |
318 | | 1. [https://sourceforge.net/projects/xming/ Xming] |
319 | | 1. [http://mobaxterm.mobatek.net/ mobaXterm] (includes ssh client) |
320 | | |
321 | | As an illustration, we will use configuration based on Putty and !VcXsrv and connect with remote graphics capability to the node1-1.sb1: |
322 | | * Install Putty and make sure you can log into ORBIT gateway or console |
323 | | * Install !VcXsrv and make sure it is running say on display '''1''' (without any applications) |
324 | | * Start Putty and load the appropriate session |
325 | | * Configure X11 forwarding under "Connection->SSH->X11": |
326 | | * Check mark on "Enable X11 forwarding" |
327 | | * Set "X display location" to: '''127.0.0.1:1''' (note matching display number) |
328 | | * Save the session |
329 | | * Open the session to SB1 i.e. connect to the console.sb1.orbit-lab.org |
330 | | * On the console execute |
331 | | {{{ |
332 | | ssX -Y -t root@node1-1 |
333 | | }}} |
334 | | and connect to the node. |
335 | | [[CollapsibleEnd]] |
336 | | [[BR]] |
337 | | [[CollapsibleStart(Mac)]] |
338 | | Mac users will need to install and run the [https://en.wikipedia.org/wiki/XQuartz XQuartz] X server application. Then you will run your ssh commands with the -Y flag to enable X forwarding: |
339 | | {{{#!shell-session |
340 | | ssh -Y -t cosmos-user@sb.cosmos-lab.org |
341 | | }}} |
342 | | [[CollapsibleEnd]] |
343 | | [[BR]] |
344 | | ==== Chrome Remote Desktop ==== |
345 | | [https://en.wikipedia.org/wiki/Chrome_Remote_Desktop Chrome Remote Desktop] is a remote desktop software from Google which allows you to interact with a desktop session on a remote machine from your browser. Note that using this method will link the remote desktop sessions to your google account. You'll never need to provide information about your account to the remote machine, but you'll only be able to connect to it with remote desktop by using the client in your browser while you are signed in to your google account. |
346 | | |
347 | | 1. Go to this link [https://remotedesktop.google.com/headless/] and click begin. You can skip downloading and installing remote desktop to your node-- it will already be installed. Follow the steps until you reach the command to start the remote desktop session. |
348 | | 2. In your ssh session, type {{{su sigcomm}}} to switch to operating as the sigcomm user. Chrome remote desktop will not work if run by the root user. |
349 | | 3. Copy the command to start the remote desktop session and paste it into your ssh session. You will be prompted to enter a pin. |
350 | | 4. Go to [https://remotedesktop.google.com/access/]. You should see the machine you just set up. When you open a session to it, you will have to enter the pin you created in the previous step. |
| 300 | |