You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Remmina从Linux远程SSH连接Windows服务器时,未设置密码的私钥被要求输入密码的问题

使用Remmina从Linux远程SSH连接Windows服务器时,未设置密码的私钥被要求输入密码的问题

看起来你遇到的是个很典型的SSH密钥认证异常问题,明明没给私钥设密码,但连接时还是被要求输入。我来帮你排查几个最可能的原因和对应的解决办法:

  • 检查Linux本地私钥的文件权限
    Linux对SSH私钥的权限要求特别严格,必须保证只有当前用户能读写,其他用户完全不能访问。如果权限太宽松,SSH客户端会判定这个私钥不安全,直接拒绝使用,转而触发密码提示(哪怕私钥本身没密码)。
    你可以先查看私钥的权限:

    ls -l ~/.ssh/id_rsa  # 把id_rsa换成你实际的私钥文件名
    

    如果输出里的权限不是-rw-------,就用下面的命令修正:

    chmod 600 ~/.ssh/id_rsa
    
  • 确认私钥确实没有设置密码
    有时候可能生成私钥时不小心设置了密码,或者后续被修改过自己没注意。你可以用这个命令验证:

    ssh-keygen -y -f ~/.ssh/id_rsa
    

    如果直接输出公钥内容,说明私钥确实无密码;如果提示输入密码,那就是私钥被加密了,你可以用ssh-keygen -p命令来移除密码(执行后按提示操作,旧密码输入设置的密码,新密码直接回车跳过)。

  • 检查Remmina的连接配置细节
    打开Remmina的连接编辑界面,核对以下设置:

    • 确认“Authentication method”选择的是「Public key」
    • 检查“Private key”的路径是否正确指向你的私钥文件
    • 如果勾选了「Use agent」选项,尝试取消勾选,直接指定私钥路径试试,有时候SSH代理的缓存会导致异常
  • 验证Windows端SSH服务的配置
    登录Windows服务器后,检查SSH服务的配置文件(通常在C:\ProgramData\ssh\sshd_config):

    • 找到PubkeyAuthentication行,确保值是yes(如果被注释了就去掉前面的#)
    • 确认AuthorizedKeysFile的路径是.ssh/authorized_keys(默认路径,对应到你用户目录下的C:\Users\<你的用户名>\.ssh\authorized_keys
    • 还要检查authorized_keys文件的权限:右键文件→属性→安全→高级,设置只有当前用户拥有完全控制权限,删除其他所有用户/组的权限(包括Administrators组),Windows对这个文件的权限要求也很严,权限不对会导致公钥认证失效

备注:内容来源于stack exchange,提问作者singh

火山引擎 最新活动