Linux 中实现 ssh 免密登录

Linux 中实现 ssh 免密登录

1. 使用命令行

在控制端使用命令生成私钥密钥对,执行命令 ssh-keygen -t rsa ,一路默认回车即可,然后会在 .ssh/ 目录下生成两个文件 id_rsaid_rsa.pub,如下图。

format,png

使用命令 ssh-copy-id root@192.168.16.4(或者使用 ssh-copy-id -i ~/.ssh/id_rsa.pub user@server ,其中 -i 后跟指定的公钥文件),其中,ssh-copy-id 把本地的ssh公钥文件安装到远程主机对应的账户下;root 是远程登陆的用户,@ 后的 IP 地址是想要远程登陆的机器。如下图,使用命令后,需要在 1 的位置填写 yes 来继续步骤,在 2 的位置填写登录主机的密码来进行下一步,只需输入这一次,以后将不需要输入。最后查看 .ssh/ 文件夹下,会发现多了一个文件 known_hosts

format,png

使用 ssh 命令进行远程登录,会发现不需要登录密码,然后查看 .ssh/ 目录,会发现里边多了一个文件 authorized_keys ,对比下即可知道,内容与第一台机器中的 id_rsa.pub 内容相同。

format,png

注意:需要注意的是文件的权限问题,其中 ~/.ssh 目录的权限至少满足 700,~/.ssh/authorized_keys 文件的权限至少为600

2. 直接将主机的公钥保存为文件

首先,在控制端使用命令生成私钥密钥对,执行命令 ssh-keygen -t rsa 。直接使用命令 cat ~/.ssh/id_rsa.pub >> ~/authorized_keys ,如下图。

format,png

然后将 authorized_keys 这个文件放在想要免密登陆的机器的 .ssh/ 目录下(如果 .ssh 目录不存在,则新建),然后即可在控制端测试是否可以使用免密登录。

3. 总结

想要实现免密的最终目的是一致的,假如 node1 想要免密登录 node2 ,不管用哪种方法,都是将 node1 中的公钥文件 id_rsa.pub 的内容放到 node2 的 .ssh 目录下的 authorized_keys 文件中。 

当然了,不仅仅是 Linux ,Windows 上也是​一致的。而且不仅仅可以用于 SSH 远程登陆,还可以用于实现 Github 的免密​操作,具体请看下图,也是将 id_rsa.pub 里的东西复制到下图所示 Key 的地方。

format,png

format,png

 

 

 

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值