SSH 使用公钥(不是私钥)进行身份验证
Posted
技术标签:
【中文标题】SSH 使用公钥(不是私钥)进行身份验证【英文标题】:SSH authenticate with public key (not private key) 【发布时间】:2015-10-20 07:28:56 【问题描述】:是否可以使用公钥连接到服务器?服务器持有authorized_keys
中的私钥,客户端可以连接:
ssh -i id_rsa.pub server
这与通常使用公钥/私钥的方式完全相反:客户端保存公钥,服务器保存私钥。
现在原因:对于部署给客户的机器,我想设置远程连接以在出现问题时抢救机器。
-
机器向救援服务器发起反向 SSH 连接:使用公钥连接(所有机器上相同:
ssh -i id_rsa.pub -NR 64000:localhost:22 rescue@server
)
机器打开通道,但无法执行命令(提示/bin/false
)
在服务器上,通过开放通道对机器进行 SSH 连接,并使用私钥进行身份验证(通常方式:ssh -i id_rsa -p 64000 localhost
)。
【问题讨论】:
你的问题是off-topic这里。 只需为您的所有计算机配置一个共享私钥,它们用于建立初始连接。无论如何,这正是您想要做的事情,除了这会奏效。 【参考方案1】:由于非对称加密的工作方式,您不能使用密钥以相反的私有/公共顺序进行身份验证。
您的替代解决方案可以是使用手册页和许多操作指南中所述的 openssh 证书。
【讨论】:
以上是关于SSH 使用公钥(不是私钥)进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins Publish over ssh 身份验证失败,使用私钥
通过 R 使用 Linux Azure DSVM 进行 SSH 公钥身份验证
使用 PuTTY 进行身份验证时,“无法使用密钥文件“...\id_rsa”(OpenSSH SSH-2 私钥)”[关闭]