server01  : IP 192.168.0.206    ssh——client

server06  : IP 192.168.0.212    ssh——server

 

首先在server01上生成公钥

[root@server01 ~]# ssh-keygen -t rsa   ###如果这里要用DSA 将rsa换成dsa就行了

[root@server01 ~]# ls .ssh/

authorized_keys  id_rsa  id_rsa.pub  known_hosts

将公钥上传到server06上的~/.ssh/下面

[root@server01 ~]# scp -P2828 .ssh/id_rsa.pub root@192.168.0.212:~/.ssh/

其次在server06上设置

[root@server06 ~]# cat .ssh/id_rsa.pub >> .ssh/authorized_keys

并且修改vim /etc/ssh/sshd_config 文件
RSAAuthentication yes # 启用 RSA 认证(默认是注释掉的,将注释去掉,如果不是yes,改为yes)
PubkeyAuthentication yes # 启用公钥认证(默认是注释掉的,将注释去掉,如果不是yes,改为yes)
PasswordAuthentication no # 禁止密码认证(改为no,默认为yes是用密码认证)

之后重新启动ssh服务:/etc/init.d/ssh restart

 

现在就可以从server01上使用ssh 公钥登陆到server06上了

[root@server01 ~]# ssh -p2828 192.168.0.212

Enter passphrase for key '/root/.ssh/id_rsa': 

Last login: Wed Apr 11 09:14:08 2012 from 192.168.0.206

 

若不想每次登录服务器时都输入密码,可以先执行下列命令:

 

[root@server01 ~]# exec /usr/bin/ssh-agent $SHELL

[root@server01 ~]# ssh-add 

Enter passphrase for /root/.ssh/id_rsa: 

Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)

[root@server01 ~]# ssh -p2828 192.168.0.212  ##直接回车就轻松的从server01登陆到了server06上

Last login: Wed Apr 11 09:25:23 2012 from 192.168.0.206