ssh 免密码登录 Linux
免密码登录简单描述
使用非对称算法,生成一个私钥和公钥,私钥加密的数据,只有通过公钥解密。私钥自己保留,其他人无法轻易查看到你的数据,而且加密解密在本地完成,传输过程中只传输加密的数据,安全性较高。
区别于 ssh 工具记录的账号密码登录,因为工具还是记录了你的账号和密码,只是省略了你输入账号密码的过程,传输的过程中,还是会涉及账号密码的信息传输,并不算是免密码登录。
创建密钥对
ssh-keygen -t rsa -C "wenhsing.test" -f ~/.ssh/is_rsa_root
使用ssh-key-gen
命令生成公钥和私钥。
-t
指定加密方式,这里指定了使用RSA加密。
-C
表示给对应的密钥添加类似注释的内容,可以忽略,我个人习惯是加上的,因为密钥太多了。 T_T
-f
指定该密钥对存放的位置和文件,默认是 ~/.ssh/id_rsa
大多数情况下是有很多密钥对的,所以为了不重复,还是很有必要添加的。当然,如果你全部都用一个密钥,那也可以忽略。
接下来,根据操作步骤提示进行操作即可。
如果你全部默认的话,那多敲几次回车就好了。Good Job!
如果需要设置你的私钥访问密码,在提示 passphrase 的时候输入你的密码,然后再输入一次确认密码即可。
执行成功后会添加两个文件,分别是之前指定路径存放的私钥文件以及一个以`.pub‵结尾的公钥文件。
将公钥添加到目标服务器
- 通过
ssh-copy-id
命令添加公钥
如果你的服务器开启了密码登录,那么可以使用这个方法一步到位添加好公钥到服务器:
ssh-copy-id -i is_rsa_root.pub root@wenhsing.test
然后输入服务器密码,它会自动将公钥内容写入到服务器的authorized_keys文件中
- 上传公钥,然后登陆服务器进行添加
当然,你可以通过将公钥文件上传到服务器,然后再将内容复制到authorized_keys文件中,完成公钥添加
上传文件
scp ~/.ssh/is_rsa_root.pub root@wenhsing.test:/root
登录服务器
ssh root@wenhsing.test
添加公钥
cat ~/is_rsa_root.pub >> ~/.ssh/authorized_keys
尝试登陆服务器
ssh root@wenhsing.test
执行 ssh 登录服务器,可以看到不需要填写服务器对应的登录密码了,是不是很方便?哈哈~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)