SSH远程免密登录的两种方式

一、准备工作

首先准备2台主机,我这主机IP分别为:192.168.150.175、192.168.150.148

这里使用175(也就是下本中本机)登录148(下文中的目标服务器)

二、ssh免密登录方式一

1. 生成本机公钥、私钥

复制代码
ssh-keygen

执行该命令然后对于弹出提示直接三次回车即可。

第一次回车是确认公钥和私钥的存放文件路径

第二次回车是默认使用私钥时的密码为空所以直接回车,你也可以输入你自己的密码,我们是为了免密登录,所以一般就是直接回车不输入任何密码

第三次回车是对私钥密码为空的确认

这个命令本质上就是生成公钥和私钥的。我们也无需为他们制定特殊的存放位置回车就是都用默认的即可。通过下面的图可以看出,公钥在/root/.ssh/id_rsa.pub,私钥在/root/.ssh/id_rsa

2.拷贝公钥到目标服务器

复制代码
// 这个命令实际上将本机生成的公钥复制到目标主机上
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.150.148

使用这个命令可以把本机的公钥copy到192.168.150.148上,命令有点类 似scp,所以这里也是需要输入密码的

3.测试ssh免密登录

复制代码
ssh 192.168.150.148

我们可以看到,无需输入密码,直接ssh就成功了

三、ssh免密登录方式二

认真看过第二种方式就会知道,第二种方式必须要知道服务器的密码,而且还是root密码,这个在工作中可能有点难度,所以我们真正使用这个方式比较靠谱吧

1.生成本机的公钥私钥

这个与方式一里面的的第一步没有任何区别,执行下面的命令三次回车即可

复制代码
ssh-keygen

2.打开本地公钥文件复制 公钥信息

复制代码
vim /root/.ssh/id_rsa.pub
# 复制公钥信息,下面是笔者的公钥信息
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDtehroANIusfqfD7iCklRKsRnLB8PmlF8C76NWZqYWx017LrwGUogDquMpgfUt4JNMAPaOMvAzs6M97yiHpsn/SFWRDDsqdJ72z0K1wtnU6L3gjZ6yzy/of4f7C34CA2wehjMCEQ4PUgic2YCU1sxY0I/lEUA7cdEib5Mw/aoNJKBcVg/iwJh26YVB4+V3pUh77FK/xL9MqB6ZIaTqrzHk5+mTpRiQQKlwm6CD4XtKXXzn5+PPiPsGYpGQyat8wWVeGvqssvKK6vYzEILW6umeRekGLKZLG/jwBkf7RZMjwhs55CMSGM+/VK1FveGh5k2mz3zEOo39w03RjzFWIhqb root@bogon

3.将公钥存放到目标服务器的这个文件里:/root/.ssh/authorized_keys

什么?没有这个文件,那就在本地执行下下面这个命令

复制代码
ssh localhost

这样本地就会产生这个文件了,然后我们将2里面拿到的公钥存放进来即可,注意若是该文件不为空,就换行新增本次的公钥就行,不要去覆盖别的公钥,不然会造成其他服务器登录这台服务器时免密失败

4.测试免密登录

复制代码
ssh 192.168.150.148

四、总结

其实两种方式本质上没有区别,都是将公钥放到目标服务器上即可,一种是在本机上采用scp的方式复制到目标主机的 ~/.ssh/authorized_keys文件中,一种是直接登录目标服务器直接找到文件,粘贴进去。两种方法本质上一样。

复制代码
相关推荐
Android系统攻城狮1 小时前
Linux Gstreamer深度解析之gst_audio_encoder_get_frame_samples_min调用流程与实战(六十)
linux·运维·服务器·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
_upupup2 小时前
Linux中的自动化构建——make/Makefile
linux·运维·自动化
还卿一钵无情泪2 小时前
Docker 部署Unsloth 绕开环境配置难题
运维·人工智能·docker·ai·容器·nlp·干货
打工仔折腾 AI3 小时前
Docker镜像分层与卷挂载到底怎么工作:一次文件系统层面的实测分析
运维·人工智能·后端·python·docker·容器·性能优化
大猫会长4 小时前
调用codebuddy集成的supabase授权白屏解决方法
linux·运维·服务器
夜之眷属5 小时前
服务器被挖矿病毒入侵的排查与清理实录
运维·服务器
极客先躯5 小时前
高级java每日一道面试题-2026年01月20日-实战篇[Docker]-如何实现镜像的跨区域复制?
java·运维·docker·容器·架构图
韩振方5 小时前
为什么服务显示占了 8G,实际内存却没那么多?
运维
xixiaoyunya6 小时前
虚拟机备份怎么做:镜像级与文件级搭配的完整实操方案
linux·运维·网络
阿明66 小时前
进程替换【Linux】
linux·运维·服务器