ssh-copy-id 语法

ssh-copy-id 语法

假设服务器上的 ssh 密码被禁用,并且我在文件“old_key.pem”中有私钥,而该服务器已经拥有公钥。

现在我生成了一对新密钥“new_key.pub”和“new_key.pem”,我想使用“old_key.pem”而不是密码将此 .pub 密钥发送到服务器。可以这样做吗?如果是,怎么办?

我面临的问题是该-i参数由“new_key.pub”使用,现在我无法使用“old_key.pem”来验证自己的身份。

答案1

ssh-copy-id如果您已有有效的公钥,请勿使用。做这样的事情:

ssh -i ~/.ssh/old_key [email protected] 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/new_key.pub

答案2

从我阅读文档的方式来看,如果您使用ssh-agentssh-copy-id将在那里安装所有尚未工作的密钥,所以这应该可以工作(但我还没有测试过):

# spawn a new agent for this so we know it's not keeping keys
$(ssh-agent)
# add keys
ssh-add new-key.pem old-key.pem
# check if those keys made it in
ssh-add -l
# and now add extra keys
ssh-copy-id user@remote
# stop the extra ssh-agent
kill $SSH_AGENT_PID

相关内容