VScode/Cursor远程密钥连接一直提示要输入密码——解决办法
·
研究生进阶小秘诀——实验室的算力只给了私钥没有给密码,但是明明已经在连接设置的时候选择了密钥地址,但是它还一直要输入密码,怎么解决嘞——
一般那个ssh连接远程服务器的config文件就是按这个格式填的
Host #你给主机设置的名字
HostName #主机地址
User #账户名,如果算力没设置一般是user
Port #端口号,默认22
IdentityFile #密钥地址
ForwardAgent yes
一直提示要输入password,这种情况时因为你的私钥文件的 Windows 文件权限过于开放,OpenSSH 出于安全考虑直接忽略了这个私钥,所以退回到要求输入密码,但是我们不知道密码,一直按回车刷新,于是反复出现 Permission denied。
#在日志中的核心报错信息是这么写的
Bad permissions. Try removing permissions for user: NT AUTHORITY\Authenticated Users (S-1-5-11) on file 你的密钥地址.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for '你的密钥地址' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "你的密钥地址": bad permissions
所以我们需要修改这个私钥文件的权限,我们来看看具体怎么解决
1.以管理员身份打开 PowerShell
2.输入以下代码
# 1.设置你的私钥文件路径
$privateKeyPath = "D:\miyao\kaili_key"
# 2.获取当前登录的 Windows 用户名(通常是你的主账户)
$currentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
# 3. 移除所有继承的权限(避免父文件夹权限干扰)
icacls $privateKeyPath /inheritance:r
# 4. 清除所有现有的权限条目(重置为无权限)
icacls $privateKeyPath /remove:g "Everyone" /remove:g "Authenticated Users" /remove:g "Users" /remove:g "Administrators" /remove:g "SYSTEM"
# 5. 仅给当前用户赋予 读取 (R) 权限 (这是 OpenSSH 要求的最低权限)
icacls "$privateKeyPath" /grant:r "${currentuser}:(R)"
你再等一会儿应该就可以连上了,不放心的话可以再检查一下这个私钥文件现在有的权限
#查看私钥文件现有权限
icacls "$privateKeyPath"
补充:
![]()
像这样,你将用户名赋值给它的话,没有输出是正常的,因为你的命令是赋值不是输出。
如果你想看看有没有赋值成功,你可以输入:
$currentuser
输出就会显示这个变量现在被什么东西赋值了,用来确认它赋值成功没有。
后面三条指令都会至少有一条这样的输出:
![]()
更多推荐



所有评论(0)