Friday, February 12, 2016

Remote control a linux desktop with ssh

To control single windows you can use X11forwarding.
For this to work on the server XForwarding has to be enabled.
Check /etc/ssh/sshd_config and make sure X11Forwarding yes is present.

That's it. You can now start graphical applications on the server and they show up on your client.

To control the whole desktop you can use x11vnc (over ssh).

First make sure x11vnc and sshd are installed on the server.

On the client:
ssh -C -t -L 5900:localhost:5900 REMOTESERVER 'x11vnc -localhost -nap -wait 50 -noxdamage -display :0 -forever'
This connects to the server, starts x11vnc to only allow local connections and tunnel the port back to the local (client) port 5900 while compressing the data (-C) to speed it all up. This way only you can connect to the remote X11 session by using a vncviewer of your choice.
vncviewer -encodings "copyrect tight zrle hextile" localhost:0

That's it.

Friday, February 6, 2015

How to build and install perl packages on archlinux

The best way to install a perl package is using the distros package manager.
This makes it easy to later remove a perl package and avoid conflicts.

Install the arch package: perl-cpanplus-dist-arch
cpanp -i PERL::PACK
cpanp is now configured to build arch linux packages instead of using the "normal" perl way. It even builds and installs all dependencies if you configured it correctly in the "Execute: setupdistarch"  step.

That's it.

Monday, April 28, 2014

Simple socks proxy with ssh

SSH can be used to create a simple socks proxy.

Just establish a connection from your local machine to an other computer with a running ssh server:
ssh -D 9292 user@host
 After that, setup your browser to use the local ssh redirect to connect to the internet.

That's all, you can check your IP address with a service like: now.

Saturday, June 8, 2013

How to move your linux (archlinux) installation to a new hdd

There are several methods to do this. This method simply copies all files from HDDold to HDDnew, reinstalles the bootloader and that it.
1. Boot a livecd (archlinux install iso will do ("loadkeys de" to 
     switch keyboard layout))
2. mount /dev/sdOLD /mnt/old (ex. /dev/sda1) (fdisk -l)
3. mount /dev/sdNEW /mnt/new (ex. /dev/sdb1)
4. cp -rav /mnt/old/* /mnt/new
4.1 Or you can use rsync: rsync -avH /mnt/old/ /mnt/new/
    rsync can exclude directories:
    rsync -avH --exclude '/mnt/old/home/porn' /mnt/old/ /mnt/new/
5. umount /mnt/old
Thats it for now, all files are on our new disk.
(If you are on archlinux and use syslinux as your bootloader of choice you can skip 6.1 - 6.5)

We now have to chroot into our new copy to be able to install grub.
6.1. mount -o bind /dev /mnt/new/dev
6.2. mount -t proc none /mnt/new/proc
6.3. chroot /mnt/new /bin/bash
Grub installation:
6.4. grub-install /dev/sdNEW
6.5. exit
Syslinux installation:
(make sure you are not in a chroot environment. The archlinux syslinux script supports installing syslinux in a mounted linux environment.)

7.1.  syslinux-install_update -a -i -m -c /mnt/new
Thats it, we are done.

8. Exit and reboot
Make sure to remove your old harddrive and put the new one to the same SATA port, so it will get the same device name in linux.

Saturday, April 6, 2013

Save file in vim as root even when you opened it as user

:w !sudo tee %

w ! takes the file content and pipes it into the following shell command
sudo tee (the shell command)  sudo opens tee as superuser and tee writes the input to a given parameter
% (the given parameter) is replaced with the current filename

Wednesday, August 15, 2012

vim settings / tricks i use

Here are some settings i personally use.
I will extend this post as soon as discover more.

syntax on (syntax highlighting)
set number (line numbers)
set keywordprg=perldoc\ -f (shift-k opens perldoc for item under cursor )

to be continued

Saturday, August 11, 2012

Extended bash tab completion

Just install the package "bash-completion" in archlinux und you will get extended tab completion for the following programs:

*edit: Make sure  "/etc/bash.bashrc" is up-to-date otherwise it may not work.

Even tab completion for rsync and scp remote files structures works now.