ssh免密码登录机器(使用公钥和秘钥进行加密来实现)
ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。
登录的原理:
有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。
首先以root账户登陆为例。
1.首先我们需要在A机器上生成一对公钥和密钥对,生成的方法如下:
1 [root@A ~]# ssh-keygen -t rsa -P ''
-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
该命令将在/root/.ssh目录下面产生一对密钥id_rsa和id_rsa.pub。
一般采用的ssh的rsa密钥:
id_rsa 私钥
id_rsa.pub 公钥
下述命令产生不同类型的密钥
ssh-keygen -t dsa
ssh-keygen -t rsa
ssh-keygen -t rsa1
在这里我们采用的是rsa来生成这个密钥对
2.把A机下的/root/.ssh/id_rsa.pub 复制到B机的家目录下面,,具体的命令操作步骤如下:
1 ssh-copy-id -i .ssh/id_rsa.pub shangzekai@10.140.112.40
2 Now try logging into the machine, with "ssh 'shangzekai@10.140.112.40'", and check in:
3
4 .ssh/authorized_keys
5
6 to make sure we haven't added extra keys that you weren't expecting.
使用如上述的命令,我们可以直接将A机器上的公钥拷贝到目标登录机上面,实际上是复制到了 /root/.ssh/authorized_keys文件里,其实我们也可以直接使用scp来进行拷贝,但要注意的是保证权限能够访问
注意:第一需要输入密码来进行拷贝
3.完成之后,我们免密码登录到目标机上面:
1 [shangzekai@node100v ~]$ ssh 'shangzekai@10.140.112.40'
2 Last login: Tue Aug 30 11:42:01 2016 from 10.16.59.100
3 [shangzekai@node442v ~]$
这样的话我们就完成了免密码登录的整个过程。
需要注意的是,我们在拷贝和登录的时候,两边的用户都必须是相同的一个人
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】