SSH无密码公钥登陆

根据自己的发展历程,回忆一下,之前接触到的都是密码用户登录,自从到了好孩子集团,感受了证书登录的情况,刚开始很抵触,超不习惯,而且当时对原理不了解,总是出错,给运维的那个哥们制造了不少的麻烦,现在懂了,来说说两种方式的利弊吧

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方式来建立互信访问,不需要

相关阅读:

一次由SELinux引起的SSH公钥认证失败问题

SSH配置双机信任图文详解

OpenWrt默认开机启动SSH的方法

SSH原理和使用

Linux下SSH免密码登录

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ee5c9f5458c41085e512050c090132bb.html