引用百度百科的说明:
SSH为Secure Shell的缩写,由IETF的网络小组(网络工作小组)所制定;它是建立在应用层基础上的安全协议。
SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。
SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。
为了在不同平台/网络主机之间的通信安全,很多时候我们都要通过ssh进行认证。ssh认证方式主要有2种:
①基于口令的安全认证:每次登录的时候都要输入用户名和密码,由于要在网络上传输密码,可能存在中间人攻击的风险;
②基于密钥的安全认证:配置完成后就可以实现免密登录,这种方式更加安全,不需要在网络上传递口令,只需要传输一次公钥。常见的git的ssh方式就是通过公钥进行认证的。
说明:这里演示所用的服务器操作系统是7分操作系统。我们的目标是:
服务器(172.16.22.131)能免密登录B服务器(172.16.22.132)。
注意:ssh连接是单向的,一个能免密登录B,并不能同时实现B能免密登录A .
<强> 2.1安装必需的软件强>
在操作之前,先确保所需要的软件已经正常安装。
这里我们需要安装ssh - keygen <代码> 代码>和<代码> ssh-copy-id> 代码,安装方式如下:
ssh - keygen #安装,需要确保服务器可以联网。博主这里已经安装完成,所以没有做任何事。 root@localhost ~ # ssh - keygen使用yum安装- y 加载插件:fastestmirror langpacks | 3.6 kB就是基础 epel | 3.6 kB就是 配件| 2.9 kB就是 更新| 2.9 kB就是 从缓存hostfile加载镜像速度 ssh - keygen没有包可用。 错误:无事可做 #安装ssh-copy-id (root@localhost ~) # yum安装- y ssh-copy-id 加载插件:fastestmirror langpacks 从缓存hostfile加载镜像速度 没有可用的软件包ssh-copy-id。 错误:无关
2.2 ssh - keygen创建公钥——私钥对
(1)在指定目录下生成rsa密钥,并指定注释为“shoufeng”,实现示例:
ssh - keygen [root@localhost ~] # - t rsa - f ~/sh/id_rsa - c“shoufeng” # ~密钥类型~密钥文件路径及名称~备注信息 生成公钥/私rsa密钥对。 没有密码输入密码(空):#输入密码,若不输入则直接回车 再次输入相同的密码:#再次确认密码,若不输入则直接回车 你一直保存在/root/.ssh/id_rsa.识别 你的公钥保存在/root/.ssh/id_rsa.pub。 指纹的关键是: 9:e3:94: b9:69: c8: e9:68:4b: dc:费尔南多-阿隆索:43:25:7f: 53: f1 shoufeng 的randomart形象的关键是: + - RSA [2048] - - - - - + | | |。| | |阿 |。E | | + s | | | . .。=o | oo.oB。。| | . . o=o。+ | + + oo + | | + - - - - - - - - - - - - - - - - - - +
注意:密钥的文件名称必须是id_xxx,这里的xxx就是- t参数指定的密钥类型。比如密钥类型是rsa,那么密钥文件名就必须是id_rsa .
(2) ssh - keygen常用参数说明:
- t:密钥类型,可以选择dsa | ecdsa | ed25519 | rsa;
- f:密钥目录位置,默认为当前用户家路径下的。ssh隐藏目录,也就是~/sh/,同时默认密钥文件名以id_rsa开的头。如果是根用户,则在/根/sh/id_rsa,若为其他用户,则在/home/用户名/. ssh/id_rsa;
- c:指定此密钥的备注信息,需要配置多个免密登录时,建议携带;
- n:指定此密钥对的密码,如果指定此参数,则命令执行过程中就不会出现交互确认密码的信息了。
举例说明:同时指定目录位置,密码,注释信息,就不需要输入回车键即可完成创建:
<代码> ssh - keygen - t rsa - f ~/sh/id_rsa - n shoufeng - c shoufeng 代码>
(3)前往~/sh/目录下查看生成的文件:
#生成的文件以test_rsa开头,test_rsa是私钥,test_rsa.pub是公钥: (root@localhost . ssh) # ls test_rsa test_rsa.pub #通过猫命令查看公钥文件: (root@localhost . ssh) #猫id_rsa . pub 将AAAAB3NzaC1yc2EAAAADAQABAAABAQC2JpLMqgeg9jB9ZztOCw0WMS8hdVpFxthqG1vOQTOji ruzl3p6ntzqfhbs0itcy0ypijggx4exyipflvilv2bsxrincvv73vnydvyl5glhsrgox/cp0 + 8 + 372 wovlanq7mxq06qaonjurd0c64xqdjfkb1ovs/nyKaOr9D8yq FxfwKqK7TzJM0cVBAG7 + YR8lc9tJTCypmNXNngiSlipzjBcnfT + 5 vtcfsenfujd60dmzdzrqtxgfss2j34cucztqssitmyf3dyhqmrxl + cJ2vjZWVZRU6IY7BpqJFWwfYY9m8KaL0PZ + JJuaU7ESVBXf6HJcQhYPp2bTUyff + vdV shoufeng #可以看到最后有一个注释内容shoufengLinux配置SSH免密登录“SSH - keygen”的基本用法