LinuxSSH免密登录

Linux免密登录使用的RSA算法。

RSA本身是一种非对称加密算法,会生成公钥和私钥。

公钥
使用公钥对内容进行加密
天王盖地虎

私钥
持有私钥的PC才能正常访问公钥加密的内容
曹洋一米五

只要持有私钥就能访问公钥加密的内容,这种事情本身就是存在风险的。一旦私钥丢失,那么服务器上的数据就存在被窃取的风险。

但是Linux生成公钥和私钥的时候支持对私钥证书文件添加密码。

证书使用场景:

场景一:只是单纯的使用证书来登录服务器。

使用证书的登录方式可以避免密码遗忘、泄漏的问题。

使用证书登录服务器的方式也是服务器加固(服务器安全相关问题)的方式。

服务器可以设置不允许使用密码进行远程登录。只允许证书的方式登录。

证书本身支持加密,就算证书丢失,再不知道证书密码的情况,证书属于无效文件。

场景二:集群中使用证书进行免密登录。

因为但凡设计到集群的时候,一般都不会是小数目的服务器数量。众多的服务器之间进行互相访问,频繁的输入密码的事情将会成为开发工程师噩梦。

所以,使用证书管理集群的时候,可以免除集群中的服务器互相访问时工程师手工输入密码的问题。

证书的生成:

bash

ssh-keygen

第一次提示:你的证书文件存放位置

第二次提示:对私钥加密,输入密码。如果不需要输入密码,直接回车。

第三次提示:私钥证书的密码确认操作。

证书文件会存放在当前账户的家目录下的隐藏目录".ssh"目录下,在该目录下会有以下4个文件:

id_rsa
私钥
执行证书生成命令才会有

id_rsa.pub
公钥
执行证书生成命令才会有

known_hosts
曾经访问过的服务器信息
每次ssh、scp、ssh-copy-id到远程服务器时就会保存记录到此文件中,以后再此访问该服务器时就不会再提示那一句"你确定要继续访问吗 yes/NO?"

authorized_keys
记录来访服务器的公钥文件内容
该文件会记录访问本机的远程服务器的公钥证书文件内容,只有对应的私钥才能进行验证。

证书注册:(公钥的拷贝)

将本机的公钥证书文件注册到远程服务器上,此后就可以使用私钥证书进行登录。

bash

ssh-copy-id {UserName}@Host_IP

执行此命令,会要求输入远程服务器的对应账户的密码。

这一步就是向远程服务器注册本机的id_rsa.pub文件(公钥)内容。此后只有本机上与公钥文件共同生成的私钥才能够进行免密登录。

免密码登录原理图
在这里插入图片描述

发布了17 篇原创文章 · 获赞 20 · 访问量 958

猜你喜欢

转载自blog.csdn.net/zhaoyi666/article/details/105211655
今日推荐