根据自己的发展历程,回忆一下,之前接触到的都是密码用户登录,自从到了好孩子集团,感受了证书登录的情况,刚开始很抵触,超不习惯,而且当时对原理不了解,总是出错,给运维的那个哥们制造了不少的麻烦,现在懂了,来说说两种方式的利弊吧
1)密码用户登录
此种登录方式比较简单,而且省事,一般比较懒的人,或者对服务器安全性要求不高的人,会这么做。
优点:简单,容易理解。
缺点:不安全,不便于管理。
实现方法:useradd ,passwd 两个命令够用了。(详细的就不说了,啰嗦)
2)证书用户登录
此种方法初始化相对比较繁琐,但后续管理方便,而且安全性比较到位,不会导致服务器账号混乱。
优点:安全。
缺点:初始化的时候要一一设置。
实现方法(情景一:Windows => linux):1)在客户端工具:xshell、secure shell client生成ssh public key 公钥,生成方式要和服务器端保持一致,通常都是rsa方式,生成必要后会有一个id_rsa.pub文件,把这个文件上传到服务器对应用户的/home/.ssh/目录下,如果用户没有/home/.ssh目录,就通过ssh-keygen -t rsa 命令构建,构建后删除生成的文件,保留用户上传的文件,然后运行命令
cp id_rsa.pub authorized_keys, 就好了,至于为什么要改成authorized_keys,是因为/etc/ssh/sshd_config里引用的就是这个名字。
2)修改服务端配置
去掉一下三行前面的注视:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
然后
修改 PasswordAuthentication yes
3)测试客户端证书登录,主要用户名使用服务器开设的相应的名字。
4)测试通过后,关闭密码登录
修改为:PasswordAuthentication no
重启sshd服务:service sshd restart
(注意文件证书权限,那flwu用户来说吧,flwu所属群组wheel)
1)目录.ssh 权限是700 owner: flwu group: wheel
2)文件authorized_keys 权限是 600 owner:flwu group : root
3)文件id_rsa秘钥文件权限是600 owner:flwu group:root
实现方法:(情景二:Linux => Linux)(类同于Windows=>linux,只不过注意生成秘钥的方法不同罢了)
经测试,发现可以server to server方式来建立互信访问,不需要
相关阅读: