linux批量配置密钥登陆,Linux系统配置SSH密钥登陆(免密码)

本文介绍了如何配置SSH密钥认证以实现无密码登录远程主机。步骤包括检查sshd配置,生成RSA密钥对,将公钥上传至远程主机,并更新authorized_keys文件。通过这种方式,可以提高SSH的安全性和便捷性。
摘要由CSDN通过智能技术生成

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

使用Linux系统的小伙伴们一定知道SSH(Secure Shell),知名的远程登陆服务。

我们每次使用SSH远程登陆到远端主机时,总是要输入密码,如果是服务器的话,密码一般都设得很复杂(或者不允许密码登录)。SSH还可以使用密钥认证的方式进行远程登陆。

配置SSH密钥认证登陆(服务端)

首先,我们需要确认远程主机的sshd服务开启了密钥认证功能。

查看sshd配置文件,确认相关功能选项均已开启。修改sshd配置文件需要root权限。$ sudo vi /etc/ssh/sshd_config

...

SAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

...注:ssh默认开启密钥认证功能,但还是确认一下比较稳妥。

修改完配置选项后,重启sshd服务。

接下来,我们需要生成一对密钥,在客户端(client)使用ssh-keygen命令来完成。$ ssh-keygen

该命令会提示3条语句,一般情况下,我们回车跳过即可(更多选项可参看命令man文档)。密钥对存放位置

输入控制密码

再输入(确认)控制密码

该命令生成了一对RSA密钥,放在用户家目录~/.ssh下,文件名是id_rsa,id_rsa.pub。带.pub后缀的是公钥,不带后缀的是私钥。

然后,我们把公钥上传到服务端(server)远端主机上完成相关配置。$ ssh-copy-id @

我们既可以使用ssh-copy-id命令自动完成配置,也可以手动操作。$ scp -P ~/.ssh/id_rsa.pub @:~

$ ssh @

$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

$ chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

$ rm ~/id_rsa.pub

其实这一步就是将id_rsa.pub公钥写入到authorized_keys中。如果没有该文件,就创建一个。再将authorized_keys与~/.ssh权限设置正确。权限设置不对,认证就会失败。注:

.ssh目录权限:0700

id_rsa秘钥权限:0600

OK,配置完成!现在我们已经可以从客户端无密码登陆远程目标主机了。

工作原理

SSH免密码登陆是使用密钥加解密认证取代原先了的密码认证。

ssh-key-auth-flow.png图:SSH 密钥认证流程图(取自 DigitalOcean)

首先初始化连接,服务端发送一段随机字符串给客户端,客户端使用私钥加密后发回,客户端再使用公钥解密,如果解密后的内容可以正确配对,则认证通过,允许远程登陆。

关于加解密的过程,子恒喵没学过密码学,也不是很懂…但是,SSH远程登陆不用输密码啦,还是很方便的。

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值