除了使用ssh-copy-id
客户端或手动将密钥粘贴到授权密钥服务器端之外,是否有一种方法可以在您使用密码登录 SSH 后自动添加密钥?
假设您尝试登录时您的公钥已经被发送,那么有没有办法告诉 SSHD 守护进程将密钥添加到授权密钥中?
答案1
不。
当您使用密码登录时,您的私人 SSH 密钥不会被使用(即:即使您没有私钥,您也可以使用密码验证登录)。
因此没有可供服务器使用的公钥。
答案2
无需使用命令即可将您的公钥添加到服务器ssh-copy-id
。
方法 1(这将覆盖原始文件但可以完成工作):
scp $HOME/.ssh/id_rsa.pub [email protected]:~/.ssh/authorized_keys
方法 2(这基本上就是 copy-ssh-id 命令所做的):
ssh [email protected] 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
编辑:我错过了问题中操作员已登录服务器的部分,但问题询问了不使用命令ssh-copy-id
。如果您没有copy-ssh-id
本地可用的命令(如嵌入式系统或路由器),则可以使用这两种方法。