SSH 使用 public 密钥(不是私钥)进行身份验证
SSH authenticate with public key (not private key)
是否可以使用 public 密钥连接到服务器?服务器持有 authorized_keys
中的私钥,客户端可以连接:
ssh -i id_rsa.pub server
这与使用public/private密钥的通常方式完全相反:客户端保存public密钥,服务器保存私钥。
现在的原因:对于正在部署给客户的机器,我想设置一个远程连接以在出现问题时拯救机器。
- 机器启动到救援服务器的反向 SSH 连接:使用 public 密钥连接(所有机器上相同:
ssh -i id_rsa.pub -NR 64000:localhost:22 rescue@server
)
- 机器打开了一个频道,但是无法执行命令(提示
/bin/false
)
- 在服务器上,通过开放通道对机器进行 SSH 并使用私钥进行身份验证(通常的方式:
ssh -i id_rsa -p 64000 localhost
)。
由于非对称加密的工作方式,您不能使用与 private/public 相反的顺序进行身份验证。
您的替代解决方案可以是使用 openssh 证书,如手册页和许多操作方法中所述。
是否可以使用 public 密钥连接到服务器?服务器持有 authorized_keys
中的私钥,客户端可以连接:
ssh -i id_rsa.pub server
这与使用public/private密钥的通常方式完全相反:客户端保存public密钥,服务器保存私钥。
现在的原因:对于正在部署给客户的机器,我想设置一个远程连接以在出现问题时拯救机器。
- 机器启动到救援服务器的反向 SSH 连接:使用 public 密钥连接(所有机器上相同:
ssh -i id_rsa.pub -NR 64000:localhost:22 rescue@server
) - 机器打开了一个频道,但是无法执行命令(提示
/bin/false
) - 在服务器上,通过开放通道对机器进行 SSH 并使用私钥进行身份验证(通常的方式:
ssh -i id_rsa -p 64000 localhost
)。
由于非对称加密的工作方式,您不能使用与 private/public 相反的顺序进行身份验证。
您的替代解决方案可以是使用 openssh 证书,如手册页和许多操作方法中所述。