Home page of this blog

Saturday, November 24, 2012

KDE over ssh

OMG

OMG, unbelievable

I am stunned, KDE is running over ssh

See the below screenshot

You can see ubuntu's violet terminals, ubuntu's global menu (close button on the left), Slackware 14 taskbar at the bottom, Ubuntu dashbar towards the left, Kinfocenter of KDE running from slackware, gnome system monitor of ubuntu running, KDE system settings running

Wondering, how it is possible? read ahead


Slackware KDE menu, ubuntu dash bar, KDE desktop

Slackware 14's firefox running in the right, Ubuntu's firefox running in the left, though KDE is running via ssh, it is surprising, titlebar, action bar (close, minimize and maximize) are using native ubuntu's


Another thing very surprising is, KDE over ssh using my powerful PC with nvidia card as x server and able to do 3d graphical effects!! whereas when I directly connect KDE slackware to monitor, it does not

 I love linux, :)

I recently assembled a low powered i3 system (just processor and a motherboard), swapped 4 GB from my old system(old system with i7 920 got 12 GB RAM upgrade) into new motherboard.

Removed a 500 GB hard disk from old system and swapped it to new system

OMG, slackware harddisk just booted into the new system

Now, I am having a single monitor so wanted to use both systems and don't want to keep swapping hdmi cables between two systems,

So here is what I experimented

To understand this see the following two important things on the setup (consider this assumptions applicable for my setup, which will vary with yours)

1. Slackware 14 on i3 3220 box is a headless ssh server (headless means no monitor, keyboard or mouse is connected) connected to home router through LAN cable with an ip address 192.168.1.5

2. Ubuntu 12.04 on i7 920 is a ssh client but has full fledged monitor, keyboard and mouse connected to it (as my Ubuntu box has nvidia GTX 460 card, it can handle tremendous GUI load), this box  is also connected to home router through LAN cable with an ip address 192.168.1.6


SSH Server Setup for X Forwarding

Now to enable X over ssh, this needs to be done in the ssh server which is slackware 14 box

Booted slackware 14 box, (while installing slackware I had enabled ssh). After that I opened  /etc/ssh/sshd_config

and changed X11Forwarding to yes from no and uncommented it


To do this, as a super user in slackware, where the ssh server is running I did this

vi /etc/ssh/sshd_config


 X11Forwarding yes

it should look like this



Then rebooted slackware 14 box


Testing X on SSH Client 

My ssh client is  ubuntu box.

To connect to ssh server I opened terminal and used ssh, gave my slackware credentials

ssh -X sankaran@192.168.1.5

You can see from the above, there is a capital X option after ssh, which indicates X to be forwarded/tunneled through ssh connection (ssh is considered secure)

192.168.1.5 is the ssh server which is my slackware 14 box

sankaran is the username in slackware 14 box

to check if the display is set correctly, tested this

echo $DISPLAY

it displayed


localhost:10.0


Now I ran xterm to check if X is forwarded properly

xterm

You can see from the below screenshot, how xterm is launched from slackware but its output got displayed in Ubuntu

Also observe the titlebar with left side close button, minimize button and maximize button


To show the difference between ssh session, I have given uname -a

you can see all these from below screenshot


Running KDE from inside ssh session

now that I showed how the ssh client and ssh server are configured and tested, it is time to put it to test

Just give startkde in ssh session, wow , wow, OMG

it runs a full fledged kde, unbelievable, isn't it

startkde

see the screenshots

KDE is starting from inside ssh session


See the kde taskbar at the bottom with kde icons and ubuntu dash icons in the left, omg


To show how KDE differs, I just clicked the folder applet and took the following screenshot


Observe network manager is showing a red colored x button in kde, who cares, as slackware is already connected to LAN and WAN, :)

To speed up things, we can do the following while doing ssh connection

ssh -XC -c blowfish sankaran@192.168.1.5

in the above C means compression is used while transfering data over LAN

-c blowfish tells the compression to use blowfish which is according to ssh manual a fast cipher for compression

All done, now slackware 14 does not have pulseaudio installed. I did not get any audio over ssh, though I guess if pulseaudio is installed it could piggyback audio through ssh

which means the audio through ssh will be my next experiment

Conclusion

One good thing about slackware 14 is it is an extremely powerful distribution, born to be a server (indeed a king of servers),

you may think,

Is Ubuntu or any other distribution can't do this?,
it can, but they launch desktop environment as soon as you boot, Ubuntu uses network manager to configure dhcp negotiation which works only after logging into gui.

All this means, I need to install Ubuntu server, which is a double work for me and I dont want to leave slackware anytime(fanboy, yes,  common, I am a  diehard slackware fan )

So so, Slackware 14, this flexible god of distributions does what you say, nothing less, nothing more, it exactly runs what you want. Just that

Whereas Ubuntu as a gui distribution helps my lazy mentality (LOL), now when the king of server distribution is plugged to Ubuntu client via ssh x forwarding, it is wonderful indeed

(Fedora, opensuse ... all these runs into gui ... so either ubuntu server or slackware 14 acts as a perfect headless box, slackware 14 has edge, it runs gui beautifully, as and when you want it to)

Reader of this blog, Hope you liked my exciting experiment

Enjoy

No comments:

Post a Comment