Centos7 ssh证书登录详情
证书登录的步骤
1.客户端生成证书:私钥和公钥,然后私钥放在客户端,妥当保存,一般为了安全,访问有黑客拷贝客户端的私钥,客户端在生成私钥时,会设置一个密 码,以后每次登录ssh服务器时,客户端都要输入密码解开私钥(如果工作中,你使用了一个没有密码的私钥,有一天服务器被黑了,你是跳到黄河都洗不清)。
2.服务器添加信用公钥:把客户端生成的公钥,上传到ssh服务器,添加到指定的文件中,这样,就完成ssh证书登录的配置了。
假设客户端想通过私钥要登录其他ssh服务器,同理,可以把公钥上传到其他ssh服务器。
真实的工作中:员工生成好私钥和公钥(千万要记得设置私钥密码),然后把公钥发给运维人员,运维人员会登记你的公钥,为你开通一台或者多台服务器的 权限,然后员工就可以通过一个私钥,登录他有权限的服务器做系统维护等工作,所以,员工是有责任保护他的私钥的,如果被别人恶意拷贝,你又没有设置私钥密 码,那么,服务器就全完了,员工也可以放长假了。
客户端建立私钥和公钥
rsa是一种密码算法,还有一种是dsa,证书登录常用的是rsa。
假设用户是blue,执行 ssh-keygen 时,才会在我的home目录底下的 .ssh/ 这个目录里面产生所需要的两把 Keys ,分别是私钥 (id_rsa) 与公钥 (id_rsa.pub)。
另外就是私钥的密码了,如果不是测试,不是要求无密码ssh,那么对于passphrase,不能输入空(直接回车),要妥当想一个有特殊字符的密码。
在客户端终端运行命令
[root@localhost ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa):
输入命令后会提示:生成公钥/私钥rsa密钥对,输入要保存密钥的文件以及保存的秘钥对的目录,这里默认回车就好
Enter passphrase (empty for no passphrase):
回车后,可以看到这里需要输入打开私钥的密码,这里强烈建议还是输入,以免秘钥被拿走直接登录
Enter same passphrase again:
输入密码后,会再次提示输入密码,两次密码输入一样即可,输入完成后会提示成功
到这一步,已经把秘钥给生成出来了。
这时候可以看到用户的根目录下已经有两个文件了
下一步更具公钥创建authorized_keys 文件:
cat id_rsa.pub >> ~/.ssh/authorized_keys
回车已经可以看到生成出来的 auth。文件了
下一步修改sshd配置文件:
vim /etc/ssh/sshd_confi
#禁用root账户登录,非必要,但为了安全性,请配置 PermitRootLogin no # 是否让 sshd 去检查用户家目录或相关档案的权限数据, # 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。 # 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入 StrictModes no # 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。 # 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys #这个文件就是刚刚 cat的那个 #有了证书登录了,就禁用密码登录吧,安全要紧,当然这个根据个人需要 PasswordAuthentication no
这时候就配置好了sshd文件,重启sshd服务,我这里是centos7.x 版,可能有些版本不同命令也不一样
systemctl restart sshd.service
这时候,服务器的配置就已经完成了。把.ssh/id_rsa 文件下载到本地,导入自己的终端再输入秘钥即可。
Dcr163的博客
http://dcr163.cn/210.html(转载时请注明本文出处及文章链接)