我不小心执行了 ssh-add -d .. 我该如何从 authorized_keys 中重新添加我的密钥?

我不小心执行了 ssh-add -d .. 我该如何从 authorized_keys 中重新添加我的密钥?

我无意中ssh-add -d尝试删除某个密钥,但它却从我的 ssh-agent 中删除了所有密钥。我需要从 authorized_keys 重新添加密钥吗?还是下次登录时会自动添加ssh -i me@wherever

我担心退出后会被锁定在系统之外。

我尝试输入ssh-add /home/me/.ssh/authorized_keys但它要求输入密码而我不知道它所说的密码是什么。

答案1

ssh-add是 的客户端部分ssh-agent,它与授予对主机的访问权限无关(授予访问权限是通过在上添加公钥( .pub)来完成的~/.ssh/authorized_hosts服务器side).ssh-agent是客户端使用的程序,服务器端只需要sshd

通过调用ssh-add -d,您已经清除了缓存的键这样ssh-agent,您下次通过 SSH 访问系统时就必须重新输入 SSH 密钥文件密码。清除此缓存不会将您锁定。只需运行ssh-add(或ssh-add ~/.ssh/id_rsa针对特定的密钥文件)即可再次记住此会话的密钥文件密码。

仅当您的私钥位于非标准位置时,才需要使用-i选项。几乎相当于,因为是 SSH 查找密钥文件的标准位置之一。sshssh -i ~/.ssh/id_rsa user@hostssh user@host~/.ssh/id_rsa

之所以ssh-add ~/.ssh/authorized_keys提示输入密码,是因为它无法识别未受保护的密钥,因此假定密钥受密码保护。事实上,该文件的格式无效,因此密码在这里不起作用。

另请参阅手册页ssh-add(1)

答案2

您可以复制(您的公钥)的内容.ssh/id_rsa.pub并将其添加到末尾,.ssh/authorized_keys或者使用ssh-copy-id localhost让 SSH 进行复制。

注意你的.ssh/authorized_keys除非您计划使用该密钥通过 SSH 进入该计算机,否则不需要输入密钥。

相关内容