作者️♂️:让机器理解语言か
专栏:计算机知识扫盲
描述:本专栏主要科普一些计算机相关的知识点。
寄语:没有白走的路,每一步都算数!
在正式说 id_rsa.pub之前,有必要先说说 SSH。
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。
一般我们都会使用到两种方式去登陆 SSH,密码登陆和证书登陆。初学者都喜欢用密码登录,甚至是 root 账户登录,密码是 123456,这样很容易遭受恶意攻击,所以在实际的工作中和大多数的互联网公司,都是会使用证书去登陆的。
注意:假设客户端想通过私钥要登录其他 ssh 服务器,可以把公钥上传到其他 ssh 服务器。
实际工作中:员工生成好私钥和公钥(千万要记得设置私钥密码),然后把公钥发给运维人员,运维人员会登记你的公钥,为你开通一台或者多台服务器的权限,然后员工就可以通过一个私钥,登录他有权限的服务器做系统维护等工作,所以,员工是有责任保护他的私钥的,如果被别人恶意拷贝,你又没有设置私钥密码,那么,服务器就全完了,员工也可以放长假了。
✅如果是 Linux,则在客户端终端运行以下命令
✅如果是 Windows,则可以用 Git Bash(默认安装了 SSH) 终端运行以下命令:
ssh-keygen -t rsa
小贴士:rsa 是一种密码算法,还有另一种是 dsa,证书登录常用的是 rsa。
假设用户是 blue,执行 ssh-keygen 时,才会在 .ssh/ 这个目录里面产生所需要的两把 Keys ,分别是私钥 (id_rsa) 与公钥 (id_rsa.pub)。
注意:Linux 是在 home/.ssh/ 目录下,而 Windows 是在 C:\Users\本地账户名称\.ssh 目录下。
就是为了让两个 Linux 机器之间使用 ssh 不需要用户名和密码。采用了数字签名 RSA 或者 DSA 来完成这个操作。
模型分析
假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;
要达到的目的:
✅单向登陆的操作过程(能满足上边的目的):
ssh-keygen -t [rsa|dsa]
,将会生成密钥文件和私钥文件 id_rsa、id_rsa.pub 或 id_dsa、id_dsa.pubcat id_dsa.pub >> ~/.ssh/authorized_keys
#ssh 192.168.20.60
)✅双向登陆的操作过程:
#ssh-keygen -t rsa
,然后全部回车,采用默认值。将公钥考到对方机器的用户目录下,并将其复制到~/.ssh/authorized_keys
中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys
)。