Update: This article is outdated! The old Debian Squeeze image is no longer available. Please use the new Raspbian Wheezy image instead.

I had some free time today so I played with my brand new Raspberry Pi. Here is what i have done so far using the Debian Squeeze image.

1) Install the Vim text editor

To install my favorite text editor:

sudo apt-get install vim

2) Changing the localization, the keyboard layout and the timezone

To change the localization:

sudo dpkg-reconfigure locales

To change the keyboard layout:

sudo dpkg-reconfigure keyboard-configuration

To change the timezone:

sudo dpkg-reconfigure tzdata

3) Disable the overscanning

Overscanning is the black frame around the four edges of the video image. To disable the overscanning you need to create a text file config.txt on your boot partition /boot an put in the following text:

disable_overscan=1

4) Install bash autocompletion

First you need to install the bash completition:

sudo apt-get install bash-completion

Then you need to activate it by changing the file /etcbash.bashrc. First you need to open it with a text editor:

sudo vim /etc/bash.bashrc

And remove the hashtags # from the beginning of the following lines:

# if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#     . /etc/bash_completion
# fi

5) Reconfigure the OpenSSH server

The SSH server in the Debian Squeeze image is deactivated by default which is good for security reasons. The password for the user pi and the ssh private keys are available in the public. You can start it with the following line:

sudo /etc/init.d/ssh start

5.1) Activate SSH boot by default

To activate the ssh server at boot simply rename the file boot_enable_ssh.rc to boot_rc on your boot partition:

sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc

5.2) Create new SSH keys

Delete the old ones:

sudo rm /etc/ssh/ssh_host_*key

And create new keys:

sudo dpkg-reconfigure openssh-server

5.3) Change the SSH port

Changing the ssh port will stop many automated attacks and will add a little bit security though obscurity. To change the port of the SSH server you need to edit the file sshd_config with a text editor:

vim /etc/ssh/sshd_config

Edit the line which states Port 22 and change the number to a port not currently used on the system

# What ports, IPs and protocols we listen for
# Port 22

to e.g.:

# What ports, IPs and protocols we listen for
# Port 50633

And restart SSH:

/etc/init.d/ssh restart

6) Create a new user and remove the user pi

First we activate the root account by creating a password for the user root:

sudo passwd

Now you need to close all sessions and re-login as root.

Because of some configuration error the user pi has been created twice. So we need to manually delete one. Open the file passwd with a text editor:

vim /etc/passwd

And delete the line:

pi:x:1001:1001::/home/pi:/bin/bash

Now we can delete the user pi and his home directory:

deluser —remove-home pi

And add a new user:

adduser username

Set the groups:

usermod -aG adm,dialout,cdrom,audio,plugdev,users,lpadmin,\
admin,sambashare,vchiq,powerdev username

Try to login with the new username and password and try to get sudo. If this works disable the root account:

passwd -l root

7) Update the system and the firmeware

To update the system:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

To update the firmeware:

create a root shell:

sudo -s

install the git certificates:

apt-get install git-core ca-certificates

Download the update script to /usr/bin and set the excecutable flag:

wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update \
&& chmod +x /usr/bin/rpi-update

Excecute the update script:

rpi-update

Reboot the raspberry pi:

reboot