Etapas essenciais se você estiver configurando seu servidor manualmente. Se você está procurando por algo um pouco mais automatizado, dê uma olhada no meu manual do Ansible adaptado para hosts Ruby on Rails. Essa dica é basicamente igual à função comum ali.
Faça isso após instalar o Ubuntu 12.04 LTS. Estou assumindo que você instalou o Ubuntu por meio de uma sessão de console, criou uma conta de usuário para você durante esse processo e optou por ter atualizações de segurança autônomas lá.
como root
vi /etc/ssh/sshd_config
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
Mantenha sua conexão SSH aberta. Não reinicie o sshd ainda.
em sua máquina local
cat ~/.ssh/id_rsa.pub
Coloque o conteúdo desse arquivo (é a sua chave pública) no host remoto.~/.ssh/authorized_keys
Agora faça SSH no host com uma nova janela de terminal. Não deve pedir uma senha.
funcionou?
como root
service ssh restart
A partir de agora, faça login no host como você mesmo e use sudo se precisar ser root.
atualizações essenciais
$ sudo apt-get update
$ sudo apt-get upgrade
faça o firewall funcionar
https://wiki.ubuntu.com/UncomplicatedFirewall
$ sudo ufw default deny
$ sudo ufw limit ssh
$ sudo ufw allow http
$ sudo ufw allow https
adicione qualquer outro serviço que você deseja expor
$ sudo ufw enable