SSH中私钥和公钥的使用

在 SSH(Secure Shell)中,密钥对用于加密和身份验证,保证了远程会话的安全。一个密钥对包括两部分:公钥和私钥。它们有不同的作用和特性:

私钥

  • 私钥是一个用户保密的密钥,它绝不能被泄露或分享给其他人。
  • 保存在用户的本地计算机上,用于 SSH 进行安全的认证。
  • 通常由 SSH 客户端软件生成并带有密码保护(可选)。
  • 在 SSH 登录过程中,私钥被用来对服务端发起的挑战进行签名,进而证明客户端确实拥有对应的私钥。

公钥

  • 公钥可以安全地分享给任何人,没有泄露风险。
  • 需要被放置在远程服务器上用户账号的 ~/.ssh/authorized_keys 文件中。
  • 当有客户端尝试连接服务器时,服务器会使用公钥来验证这个客户端发送的签名是否合法,以此确认远程登录用户持有对应的私钥。

SSH 密钥认证过程

  1. 客户端请求连接到 SSH 服务器。
  2. 服务器检查客户端是否提供了一个公钥。
  3. 如果客户端提供了一个公钥,服务器使用这个公钥生成一个随机数并发送给客户端作为挑战(challenge)。
  4. 客户端使用私钥对这个挑战进行签名,然后将签名发送回服务器。
  5. 服务器用公钥验证这个签名。如果验证成功,说明客户端持有匹配的私钥,服务器允许客户端登录。

在实际操作中,用户首先需要在本地计算机上使用 SSH 客户端生成密钥对,然后将生成的公钥放置到想要访问的服务器的相应账户下。私钥应该妥善保存在本地计算机上,并且应尽可能设置密码保护,避免未授权访问。

总的来说,公钥可以看作锁,而私钥就是打开这把锁的钥匙。公钥可以放在服务器上,谁都可以看到(用于上锁),但只有拥有私钥的人才能解开(认证成功)。在 SSH 安全模型中,所用密钥对的加密算法通常是 RSA 或 ECDSA 等。

SSH 公钥和私钥的生成通常通过使用 ssh-keygen 命令行工具进行。当生成一个密钥对时,公钥和私钥会自动具有绑定的关系,因为它们是同时生成的,并且是数学上互相对应的。以下是生成和使用密钥对的一般步骤:

生成 SSH 密钥对:

  1. 打开终端。
  2. 输入命令 ssh-keygen 并按回车键。
  3. 系统将会提示你选择保存密钥对的位置。如果接受默认位置(通常是 ~/.ssh/id_rsa),直接按回车键。
  4. 系统会问你是否要设置一个密码保护私钥。如果想要设置密码(这一步是可选的,但为了安全性,建议设置),输入你的密码并确认;否则直接按回车键。
  5. 密钥对生成完毕后,私钥保存在了指定位置
  • 34
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值