我使用macbook(MacOS)连接到远程Ubuntu服务器。我使用ssh-copy-id
将公共ssh密钥复制到服务器,并检查ssh密钥是否在终端上工作。当我做ssh username@x.x.x.x
时,连接是在不询问密码的情况下建立的)。但是,当我试图通过Visual代码连接到服务器时,VSCode一直在询问密码。有办法解决这个问题吗?
提前感谢!
发布于 2020-09-03 16:06:36
这是配置文件的问题。
VSCode需要“绝对”路径。
对于MacOS,ssh-copy-id
似乎只复制相对于用户的绝对路径。
换句话说,它在"/Users/username
“之前省略了"/.ssh
”。
在/Users/username
中的IdentityFile
属性中添加“.ssh/config
”解决了这个问题。
发布于 2020-09-02 04:39:45
检查此第2518期是否适用:
您应该能够通过删除日志中的文件(在远程服务器端,作为sudo根)、
/home/#####/.vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/vscode-remote-lock.#####.78a4c91400152c0f27ba4d363eb56d2835f9903a
(带有unlink
)或运行命令"Kill .“来摆脱这种状态。 如果再次发生这种情况,可以尝试设置remote.SSH.useFlock
。在命令调色板(View->Command Palette)中运行的确切命令是: 远程-SSH:杀死主机上的代码服务器.
另外:
在我的例子中,在使用终端通过ssh连接到容器后删除整个
~/.vscode-server
目录是有效的。 (仅删除~/.vscode-server/bin
无效。)
OP sukrama确认在评论中已经解决了这个问题
这是配置文件中ssh键路径的问题。
发布于 2020-12-19 09:53:30
这里有一个快速方便的解决方法:您不必每次都删除整个..vscode server文件夹!问题似乎是一个名为“vscode-远程锁定.”的文件。它可以位于~/..vscode server/bin/的文件夹中。该文件通过vscode在每个ssh登录时创建。在远程主机上运行以下脚本。每当创建该文件时,它将删除该文件:
while true
do
if ls /home/<your-username>/.vscode-server/bin/*/vscode-remote-lock.<your-username>.* 1> /dev/null 2>&1; then
find /home/<your-username>/.vscode-server/bin/*/ -name vscode-remote-lock.<your-username>.* -delete
echo "Killed the troublemaker! ^_^"
fi
done
文件名和文件夹名可能因机器而异。因此,在您的机器上找到名称并将它们粘贴到脚本中。然后运行脚本,你就可以走了。
https://stackoverflow.com/questions/63691107
复制相似问题