我有一个个人和专业的 Bitbucket 帐户。我可以通过 Git 命令行访问两者,但无法在 Visual Studio Code GUI 界面中使用专业帐户。
这两个账户的区别在于,我的专业账户在 SSH 密钥上有一个密码短语,并在我访问远程 repo 时提示我输入密码。我无法让 Visual Studio Code 提示我输入密码。
我收到一条错误消息“Git: git@bitbucket.org: Permission denied (publickey)”。
git 日志输出显示:
但是,如果我跳入集成终端并 'git push' 它是成功的:
我已经阅读了很多不同的方法来解决这个问题,但似乎没有一个能解决这个问题。
我有 ssh-agent 正在运行。我已将密钥添加到代理中。ssh-add -L
显示加载的密钥。
我已按照https://code.visualstudio.com/docs/remote/troubleshooting 上提供的说明将"remote.SSH.showLoginTerminal": true,
和添加"remote.SSH.useLocalServer": false
到 VS Code settings.json这没有影响。
我添加了远程开发扩展包并按照https://code.visualstudio.com/docs/remote/ssh 上的说明进行操作,但由于 Bitbucket shell 访问被禁用而无法完成它们
我已经尝试AddKeysToAgent yes
按照另一篇文章中的建议添加到 .ssh/config 文件的顶部。这没有改变任何东西。
我已经尝试过,git config --global credential.helper cache
但它看起来只适用于 HTTPS,而不适用于 SSH。
尽管我已经尝试了所有,VS Code 仍然无法与上述错误连接。我可以从密钥中删除密码,它工作正常,但我想让它与密码一起工作。
我错过了什么?
我编写了一个脚本,它将递归指定的文件夹并对其中的文件进行一些分析。我需要在分析中排除指定的子文件夹。此排除列表会根据正在分析的基本文件夹而变化。我的脚本使用这样的长模式:
Get-ChildItem -File -Recurse $source_folder |
Where-Object {
$_.FullName -notlike "*\folder_name0\*" -and
$_.FullName -notlike "*\folder_name1\*" -and
$_.FullName -notlike "*\folder_name2\*" -and
$_.FullName -notlike "*\folder_name3\*" -and
$_.FullName -notlike "*\folder_name4\*"
}
Run Code Online (Sandbox Code Playgroud)
但这不太可重用。我希望能够将例外列表存储在 .CSV 中,并根据我正在分析的文件夹集调用我需要的例外列表。我想做的是这样的:
$exception_list = Import-CSV .\exception_list
Get-ChildItem -File -Recurse $source_folder |
Where-Object {$_.FullName -notlike $exception_list}
Run Code Online (Sandbox Code Playgroud)
但这不起作用。我怀疑是因为我无法在数组中的元素之间指定“and”或“or”。我确实短暂地考虑过尝试使用 a 即时创建整个参数foreach($exception in $exception_list){$argument += "$_.FullName -notlike $exception -and"}
,但这很快就变得愚蠢和复杂,因为您仍然需要删除最后一个“和”。
有没有有效的方法来做到这一点?