当前位置:   article > 正文

Linux 中实现 ssh 免密登录_linux免密登录ssh

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

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/842829
推荐阅读
相关标签
  

闽ICP备14008679号