Ubuntu Severにsshでアクセス

ここがわかりやすい。http://h4ox.org/ninetails/wiki/index.php?OpenSSH_debian

サーバー側の設定

sudo vi /etc/ssh/sshd_config

でセキュリティの設定を以下のように変更。

PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no

sudo /etc/init.d/ssh restart

で正しく再起動することを確認。
途中、誤ってHost keyである/etc/ssh/ssh_host_rsa_keyと/etc/ssh/ssh_host_dsa_keyを削除してしまったので、

sudo ssh-keygen -t rsa
sudo ssh-keygen -t dsa

で生成しなおした。

クライアント側の設定
Windowsからアクセスする場合。cygwin

ssh-keygen -t rsa

生成された鍵のペア(id_rsaとid_rsa.pub)のうち秘密鍵のほうをputtygenのconvertでppkに変換する。
公開鍵はftpでサーバーに転送(サーバーにおいてftp getでクライアントから持ってくる)。
初めての公開鍵であれば、

mv id_rsa.pub authorized_keys

追加の鍵であれば、

cat id_rsa.pub >> authorized_keys

パーミッションは600に変更しておく。

cygwinがない場合は、puttygenで生成した公開鍵をサーバーに転送した後に

sudo ssh-keygen -i -f id_rsa.pub > id_rsa2.pub

などとしてopenssh用に変換する必要がある。
以上でsshでリモートアクセスができるようになるはず。