SSH key的生成,到底是在客户端生成还是在服务端生成?

本文详细介绍了SSH公钥和私钥的工作原理,并解释了如何通过配置公钥实现免密登录。文章还分享了一个常见问题解决方案:当配置了多个密钥对时,确保正确配置了用于认证的公钥。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SSH key是一对公钥和私钥。

大部分情况下,都是在客户端生成这对key,然后将public key放到服务端。然后客户端就可以免密登录服务器了。(大多数情况都是使用的这种方法)

但是,其实也是可以在服务端生成这对key的,然后将private key放到客户端。这样客户端也可以直接连接服务端。

其实这两种方法没什么区别。在进行验证的时候,客户端拿着的都是私钥,服务端拿着的是公钥。

ssh key只不过是两个文件而已,在哪生成没什么区别。只要保证客户端拿着的都是私钥,服务端拿着的是公钥就行。

public key相当于是一扇门,private key相当于是开门的钥匙。当一台机器A想要登录另一台机器B的时候,就得拿着钥匙去开门。首先被登录的B必须要有门,所以你得给B装上门,也就是将A的公钥放到B的~/.ssh/authorized_keys中。

最近遇到了一个坑:将public key放到想要登录的机器之后,发现登录还是需要密码,不能免密登录。
经过调查发现,自己的机器的.ssh目录下,同时存在多对sshkey,id_ed25519/id_ed25519_pub, id_rsa/ id_rsa_pub这两对key,
ssh连接的时候默认会使用id_ed25519。cat ~/.ssh/config 可以看见。
而我是将id_rsa_pub放到了服务器的authorized_keys中,所以一直连接不上。需要将id_ed25519_pub放到服务器上。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值