- 在客户机上使用ssh-keygen命令生成私钥文件id_rsa与公钥文件id_rsa.pub
- 使用scp命令(其它命令也可)将公钥文件导入到linux主机当中,再将id_rsa.pub文件的内容复制到~/.ssh/authorized_keys当中(也可以是其它文件,这个在/etc/sshd/sshd_config文件AuthorizedKeysFile字段中设置)
- 重启ssh服务(使用Fedora系统 /etc/init.d/当中竟然没有sshd,但是ssh服务使用正常,暂不知道什么原因)
- 在客户机上登陆linux服务器,不再使用密码啦
以下内容很大程度上借鉴了http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html的文章。另外,http://my.oschina.net/realfighter/blog/388486这篇文章对ssh登陆的过程解释的十分透彻。
ssh登陆过程:
client------登陆请求------>Server
client<------发送公钥------Server
client------公钥加密的密码------>Server
Server------使用私钥解密。。。。。。
中间人攻击(Man-in-the-middle attack)
client------登陆请求------------------>Server------此过程中有人截获了登陆请求,此人称之为“中间人”、
client<------中间人伪造的公钥----->中间人
client------公钥加密的密码--------->中间人
中间人------使用私钥解密,获取到密码,然后登陆服务器
ssh证书方式登陆,client上保存用户的私钥,Server上保存用户的公钥
client------登陆请求------>Server
client<------发送随机字符串------Server
client------私钥加密的随机字符串------>Server
Server------使用用户的公钥解密。。。。。。