我无意中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 查找密钥文件的标准位置之一。ssh
ssh -i ~/.ssh/id_rsa user@host
ssh 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 进入该计算机,否则不需要输入密钥。