考虑到朋友的Linux服务器,在使用ssh进行远程加密管理服务器的同时,如果使用普通的密码验证方式,很容易遭到"man-in-the-middle",所谓“中间人“的攻击方式,就是“中间人“冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人“一转手做了手脚之后,就会出现很严重的问题。因此,使用秘钥验证方式对服务器进行管理,实现过程如下:
1.首先在client上建立public key和private key,需要使用ssh-keygen命令。
2.然后,将private key放在client上的主目录,即$HOME/.ssh/,并且修改权限为仅有user可读。
3.最后,将public key放在任何一个你想登入的主机server中某个user的主目录下.ssh/自目录的认证文件(authorized_keys),即可完成整个程序。
经测试在linux完全没有问题,只是在windows下使用putty进行连接时,需要把秘钥进行下转换才可以使用秘钥连接,步骤如下:
1.使用puttygen把秘钥进行转换。
2.打开putty,添入“hostname”、“port”,然后选择左面导航里的“Connection”->“Data”,在“Auto-login username”里添入你要登陆的用户名;在“SSH”->“Auth”里导入转换后的秘钥文件。
3.单击“open”登陆。
4.另外,最好禁止root用户的登陆,修改/etc/ssh/sshd_config里的“permitrootlogin"为NO,可禁止root用户登陆。
5.也可以限制某个用户或者用户组的登陆,使用"denyusers"和"denygroups"即可。