ssh相信服务器管理员用的很多,默认的登录方式是直接连接,然后提示输入账号密码。这边介绍一种使用证书登录的方式,可以免去输入密码的麻烦,也让服务器更加安全。下面分别说明linux中ssh和windows中putty的使用设置。
一、linux中ssh使用证书登录linux服务器
以下使用两台centos 6.4的进行说明。其中A做为被登录的服务器,B做为客户端。
1、在客户端B上生成公钥和私钥文件。
$ ssh-keygen -t rsa
这时会提示密钥保存的文件和密钥保护密码,都用默认的就可以了。
2、将客户端B上的公钥保存到A服务器
可以直接在B上使用ssh-copy-id命令
$ ssh-copy-id 登录A的用户名@A的IP
这里以root用户为例:
$ ssh-copy-id root@A的IP
执行成功后,会在A机器的root根目录下的.ssh/authorized_keys文件里追加客户端B的公钥,就是id_rsa.pub存储的内容。
上面的操作完成之后,试试ssh连接,就可以不用输入密码登录了。
$ ssh root@A的IP
二、windows下putty使用证书登录linux服务器
原理和上面的一致。测试机器:其中A做为被登录的服务器(centos 6.4),B做为客户端(windows xp)。
1、在客户端B上生成公钥和私钥文件。
前往官网下载公钥和密钥生成器puttygen.exe,下载页面:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
运行puttygen.exe,点击Generate生成公钥和密钥:
puttygen生成公钥和私钥
然后将公钥保存到文件id_rsa.pub,私钥保存为id_rsa.ppk。建议这两个文件和putty.exe放在同一个目录。
2、将客户端B上的公钥保存到A服务器
这边不像linux下可以使用ssh-copy-id命令,只能使用文件操作的方式了。编辑服务器A上的root根下的.ssh/ authorized_keys文件,将上面生成的公钥追加到文件后面,保存。
3、上面的操作完成后,就可以使用证书登录了。
选择默认登录的用户名
putty设置默认登录名
选择私钥文件
putty设置私钥文件
设置完成后,别忘记保存设置下。然后试试连接,看看是不是不用输入密码就能直接登录了。
小结
上面在客户端生成公钥和密钥的时候,可以设置密钥的保护密码,可以根据需要自行设定下,如果有设定的话,在登录的时候,需要输入该密码。另外如果服务器设置了证书登录,就可以考虑关闭密码登录,这样更加安全些,只是这样的话,在没有证书的电脑是无法登录服务器的。