设置 ssh 使用public key 免密码登录
第一步,生成自己公钥, 私钥
1: ssh-keygen -t rsa
2:
3: root@yjlml:~# ssh-keygen -t rsa
4: Generating public/private rsa key pair.
5: Enter file in which to save the key (/root/.ssh/id_rsa):
6: Enter passphrase (empty for no passphrase):
7: Enter same passphrase again:
8: Your identification has been saved in /root/.ssh/id_rsa.
9: Your public key has been saved in /root/.ssh/id_rsa.pub.
10: The key fingerprint is:
11: 3e:6e:d9:12:7c:f8:6f:18:f6:65:cb:6e:16:4f:83:43 root@yjlml
12: The key's randomart image is:
13: +--[ RSA 2048]----+
14: | |
15: | |
16: | |
17: | E |
18: | .S. . . |
19: | .+ + o+..|
20: | oB + +.=.|
21: | .+.+ o = .|
22: | ... o.+. |
23: +-----------------+
中间连续按几次回车, 使用默认文件名, 并不输入密码。
二, 把你的公钥,拷贝到远程机器的 “~/.ssh/authorized_keys” 文件中。
刚才生成的公钥在: ~/.ssh/id_rsa.pub, 里面是文本,直接复制出来,粘贴到远程的“~/.ssh/authorized_keys” 文件中即可。 如果没有这个文件,自己新建一个。
这个文件可以保存多个公钥,只需要连续放在里面就可以了。
拷贝的方法有很多。自己想办法。
拷贝完成之后,重启一下ssh服务。
service ssh restart
然后测试是否成功:
1: root@yjlml:~# ssh root@190.***.***.*** -p 22 ls
这里故意指定了一个端口22, 其实可以省略的。如果你的ssh端口不是22可以这样指定。
这句话是在远程执行一个 命令 ls, 看能不能执行成功。
如果能看到ls的结果。那就是成功了。
三, 错误处理
如果访问不成功,请检查远程机器的 “/etc/ssh/sshd_config ”文件:
找到其中的这一段。
6: RSAAuthentication yes
7: PubkeyAuthentication yes
8: #AuthorizedKeysFile %h/.ssh/authorized_keys
注意,必须开启 公钥认证, 检查公钥文件。
改完之后,重启远程ssh服务: service ssh restart
欢迎大家访问我的个人独立博客: http://byneil.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库