gpt4 book ai didi

ssh - ssh-add 和 ssh-agent 有什么区别?

转载 作者:行者123 更新时间:2023-12-02 03:03:11 24 4
gpt4 key购买 nike

我正在关注 ssh github tutorial ,我对 ssh-add 和 ssh-agent 之间的区别感到困惑。该教程似乎暗示我每次想使用 ssh key 时都需要输入密码,为了阻止这种情况,我需要以某种方式将 key 提供给 ssh 代理。但是,在运行命令 ssh-add 之前,系统不会提示我输入密码,并且根据手册页

ssh-add adds RSA or DSA identities to the authentication agent, ssh-agent(1).

如果代理的目的是不必使用密码,那么为什么代理要求我创建密码?

这是我正在运行的代码以及我对 ssh-add 的理解:

ssh-keygen -t rsa -C "your_email@example.com"
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair. Public key is like a padlock, private key is like a padlock key.
# Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
#This is like taking the padlock and they key together and sticking them in a box.
#-------------------------------
ssh-add id_rsa
#ssh-add is like sticking your key in a safe. Instead of putting your keys on a hook in your house, where anyone can pick it up, you put your key in a safe protected by a password.
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
#The safe now has a password.

ssh-add 和 ssh-agent 之间有什么关系?我的以下假设是否正确:

  1. 在没有添加的情况下进行 SSH 注册机有点像把 key 留在公寓里,你让进入你公寓的任何人都可以拿起它们、制作副本并获取你的所有东西?

  2. 使用添加功能进行 SSH key 生成就像将您的 key 放在带有密码的保险箱中,这样即使您让某人进入您的公寓,他们仍然无法获取您的所有 key ?

  3. ssh-add 是由名为 ssh-agent 的程序执行的操作吗?

最佳答案

假设您有几台远程 Linux 计算机需要管理。

首先,通过在本地计算机上使用 ssh-keygen -t rsa 创建公钥-私钥对来设置 ssh 登录。我们还假设您在创建 key 时没有设置密码。

接下来,通过运行 ssh-copy-id -i ~/.ssh/id_rsa.pub user@somehost 将公钥复制到您想要登录的所有远程计算机。现在,使用您的私钥,您将能够登录复制公钥的所有计算机。

由于您没有创建密码,因此拥有您的私钥的任何人都可以登录到已添加您的公钥的所有计算机。假设您向一些 friend 授予对本地计算机的访问权限,而其中一位是心怀恶意的。为了防止他们在远程计算机上执行恶意操作,您可以为您的私钥设置一个密码。现在,每当您使用 key 登录时,系统都会提示您输入密码,因此只有您(知道密码的人)才能登录。

但是每当您想登录其他机器时输入密码就变得很麻烦。因此,您可以将密码短语提供给 ssh-agent 一次,它就会在需要时使用它。您使用ssh-add 将 key 提供给ssh-agent。您始终可以通过发出 ssh-add -l 来检查 ssh-agent 正在管理的所有 key 。

关于ssh - ssh-add 和 ssh-agent 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22272299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com