四、使用公钥认证
1、原理:首先由用户生成一对密钥,然后将公钥保存在SSH服务器用户的目录下.ssh子目录中的authorized_key文件里(/root/.ssh/authorized_key).私钥保存在本地计算机.当用户登陆时,服务器检查authorized_key文件的公钥是否与用户的私钥对应,如果相符则允许登入,否则拒绝.由于私钥只有保存在用户的本地计算机中,因此入侵者就算得到用户口令,也不能登陆到服务器.
2、启用公钥认证
修改配置文件/etc/ssh/sshd_config
将"PasswordAuthentication yes"修改为"PasswordAuthentication no"
3、生成密钥
[root@rain ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
4d:dd:48:af:76:c2:ba:a8:bc:20:f3:28:1d:6a:28:53 root@rain.deco.com
4、将/root/.ssh/id_rsa.pub改名为/root/.ssh/authorized_keys
mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
5、将私钥id_rsa拷贝到客户机
A:linux下可以拷贝到/root/.ssh/就可以直接使用了。
测试:
[root@simple ~]# hostname
simple.deco.com
[root@simple ~]# ssh 10.0.0.20
Last login: Fri Sep 22 23:26:09 2006 from 10.0.0.30
[root@rain ~]# hostname
rain.deco.com
测试通过:
B:windows下使用putty远程连接
因为putty不能识别直接从服务器拷贝来的私钥,那么还需要下载一个工具将私钥的格式转化为putty使用
的格式。
工具名称:puttygen.exe
下载地址:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
格式转换
1)、打开工具puttygen.exe --> Conversions --> Import Key
2)、选择从拷贝过来的私钥文件id_rsa
3)、Save private key 名字随便 例如ftpserver.ppk
测试:打开工具putty.exe
1)、Session --> Host Name (填写服务器地址或者域名)
2)、Connection --> SSH --> Auth (点Browse选择刚才经过格式转换的ftpserver.ppk)
3)、open
login as: root
Authenticating with public key "imported-openssh-key"
Last login: Fri Sep 22 23:31:34 2006 from 10.0.0.10
[root@rain ~]# hostname
rain.deco.com
测试通过