我的情况与发布的情况类似这里但不完全相同。
我可以访问一台远程计算机A
,该计算机是使用带有密码的私钥从计算机连接到的B
。我想让同事访问我在远程计算机上的帐户A
,但显然我不喜欢让他访问存储在计算机上的我的私钥B
。
我想做以下事情,但我很困惑,不知道该怎么做。我想打开从机器B
(中间人)到A
(远程)的隧道,让我的同事使用该隧道连接到远程机器。但是,这样做时我不想让他访问我在机器B
(中间人)上的帐户。
我尝试过ssh -fNL 12345:A:22 me@A
,B
但是当我发出时,ssh -p 12345 me@B
我收到一条错误消息,说Permission denied (public key).
我在这里做错了什么?
答案1
当您运行时ssh -p 12345 me@B
,SSH 客户端正在通过隧道连接到 A 上的 SSH 服务器。您仍然需要有效的凭据(帐户和密码或 SSH 密钥)才能登录 A。因此,您应该使用您的 SSH 密钥进入 A。
我不确定你是否需要为此建立隧道。让你的朋友创建他自己的 SSH 密钥,并将密钥的公共部分给你。将公钥添加到authorized_keys
A 上的文件中。如果你的朋友可以通过 SSH 访问 A,那么他就能够使用他自己的 SSH 密钥登录你的帐户。
如果您的朋友无法直接访问 A,那么您可以按照您描述的方式设置隧道,并让他按照您描述的方式登录。但是,他会使用自己的 SSH 密钥,而不是您的。
如果他不再是你的朋友,只需将他的公钥从你的authorized_keys
文件中删除即可。