ssh 免密登陆

密码登录原理:

首先我们来看一下传统的ssh 密码登录的具体过程:

ssh密码登录原理图

密钥登录原理:

ssh免密钥登陆详解2.jpg

ssh 免密登陆实战

实验说明:主机 70.244 / 70.245 / 70.246 三台机器

1.生成密钥

首先在每台执行 ssh-keygen -t rsa
生成之后会在用户的根目录生成一个 “.ssh”的文件夹
进入“.ssh”会生成以下几个文件

-rw-------  1 root root 1675 3月  14 04:12 id_rsa
-rw-r--r--  1 root root  395 3月  14 04:12 id_rsa.pub
-rw-r--r--. 1 root root 6458 3月   2 23:10 known_hosts
  • id_rsa : 生成的私钥文件
  • id_rsa.pub : 生成的公钥文件
  • know_hosts : 已知的主机公钥清单
  • authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的

2.修改.ssh权限

chmod -R 700 .ssh

3.拷贝自己公钥(id_rsa.pub)至 其它台的 authorized_keys

其实这里可以直接cat ~/.ssh/id_rsa.pub内容至记事本上,然后手工粘贴到其它两台的authorized_keys文件中,但是linux提供了更为简单的命令如下:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@<romte_ip>
我们在三台设备上分别执行如下命令:
注意一定不要忘记本身的ip地址,也要这个命令啊

在70.244上执行:
ssh-copy-id -i ~/.ssh/id_rsa.pub  10.0.70.244
ssh-copy-id -i ~/.ssh/id_rsa.pub  10.0.70.245
ssh-copy-id -i ~/.ssh/id_rsa.pub  10.0.70.246
在70.245上执行:
ssh-copy-id -i ~/.ssh/id_rsa.pub  10.0.70.244
ssh-copy-id -i ~/.ssh/id_rsa.pub  10.0.70.245
ssh-copy-id -i ~/.ssh/id_rsa.pub  10.0.70.246
在70.246上执行:
ssh-copy-id -i ~/.ssh/id_rsa.pub  10.0.70.244
ssh-copy-id -i ~/.ssh/id_rsa.pub  10.0.70.245
ssh-copy-id -i ~/.ssh/id_rsa.pub  10.0.70.246

4.常见错误说明:

-bash: ssh-copy-id: command not found //提示命令不存在
解决办法:
yum -y install openssh-clients

5.修改authorized_keys权限

chmod -R  600 ~/.ssh/authorized_keys

6.最后说明

如果希望ssh公钥生效需满足至少下面两个条件:

  1. .ssh目录的权限必须是700
  2. .ssh/authorized_keys文件权限必须是600
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如果本机公钥和私钥是有密码的,需要重新生成,并且不去设置密码,否者免密登陆的时候, 远程主机不需要密码了,但是每次...
    你说你要一场阅读 704评论 0 0
  • 鉴于在终端登陆linux服务器,每次都要输入用户名,IP和密码,甚麻烦。故利用ssh免密登陆以及利用别名登陆。 一...
    猎鹰jay_wong阅读 1,536评论 0 4
  • 一、用ssh-keygen创建公钥 输入ssh-keygen -t rsa命令会在/.ssh/目录下创建 id_r...
    ALTHE阅读 471评论 0 0
  • 为了让两个linux机器之间使用ssh不需要用户名和密码。所以采用了数字签名RSA或者DSA来完成这个操作。 ...
    Sunshine_Boys阅读 5,338评论 0 4
  • 在已经有公钥和私钥的情况下,只需要以下三步即可实现免密登陆: 1、将已有rsa公钥和私钥拷贝到~/.ssh目录下。...
    LeeYunFeng阅读 937评论 0 51