ssh“密钥上的权限太开放”

ssh“密钥上的权限太开放”

我们正在尝试通过使 SSH 在没有 SSH 私钥权限验证的情况下工作来修复某些文件系统所遇到的问题。

错误信息:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 警告:未受保护的私钥文件!@ @@ ...

由于某些奇怪的原因,我们无法更改某些文件的访问权限(欢迎来到 Windows 的 Cygwin 世界)

有人知道是否有办法通过任何方式绕过 ssh 验证吗?我在 ssh 选项中没有找到任何相关内容。

如果您回复 chmod 400 或 600,那不是我想要的!

答案1

有人知道是否有办法通过任何方式绕过 ssh 验证?

在这种情况下,你的问题毫无意义......你收到错误是由于错误的权限和/或密钥所有权,因为密钥只能由其预期用户访问,而不能由其他帐户、服务或组访问:

  • 图形用户界面(GUI):
    [文件]特性安全先进的
    1. 所有者:更改 →选择校长→ 输入密钥的用户 → 确定
    2. 权限条目:删除除密钥用户之外的所有内容
    3. 将密钥的用户设置为完全控制如果尚未设置
      1. 选择用户 → 修改 → 完全控制 → 确定
        或者
      2. 添加 →选择校长→ 输入密钥的用户 → 确定
    4. 确定 → 确定

  • Cmd
    ::# Set Key File Variable:
        Set Key="%UserProfile%\.ssh\id_rsa"
    
    ::# Remove Inheritance:
        Icacls %Key% /c /t /Inheritance:d
    
    ::# Set Ownership to Owner:
        Icacls %Key% /c /t /Grant %UserName%:F
    
    ::# Remove All Users, except for Owner:
        Icacls %Key%  /c /t /Remove Administrator BUILTIN\Administrators BUILTIN Everyone System Users
    
    ::# Verify:
        Icacls %Key%
    
    ::# Remove Variable:
        set "Key="
    
    

  • PowerShell
    # Set Key File Variable:
      New-Variable -Name Key -Value "$env:UserProfile\.ssh\id_rsa"
    
    # Remove Inheritance:
      Icacls $Key /c /t /Inheritance:d
    
    # Set Ownership to Owner:
      Icacls $Key /c /t /Grant $env:UserName:F
    
    # Remove All Users, except for Owner:
      Icacls $Key  /c /t /Remove Administrator BUILTIN\Administrators BUILTIN Everyone System Users
    
    # Verify:
      Icacls $Key
    
    # Remove Variable:
      Remove-Variable -Name Key
    
    

  • WSL/Cygwin:
    # Set Variables:
      # Key File:
        key="/path/to/key"
    
      # User:
        user="$(echo $USER)"
    
    # Set Ownership to Owner: (assumes user's name is also user's group name)
      chown $user:$user $key
    
    # Set Access Rights
      chmod 0600 $key
    
    # Verify
      ls -l $key
    
    

答案2

我不确定您是否明白这条消息的含义或者您在请求什么。

基本上,SSH 会告诉您,您的私钥(在这种情况下,由于它不属于您)是公开的。用英语来说,这意味着:“您的密码是纯文本。有权访问此框的每个人都可以访问它。”

您希望 SSH 忽略此问题,但 SSH 的设计是安全的。正如您所说:如果您无法更改此文件的权限,则说明您未正确安装 cygwin。

您能解释一下为什么要忽略这个警告吗?

您可以随时安装telnet-server

答案3

我在使用 Cygwin 时遇到了完全相同的问题,并通过编辑 Windows 资源管理器中的关键文件属性(属性-安全-高级)并删除所有组(只留下我的用户名)并将其设置为只读来设法解决该问题。

-r-------- 1 antonio 域用户 1692 1 月 15 日 19:22 AWS_Antonio.pem

这为我解决了这个问题。这篇文章给了我启发。 Windows SSH:“私钥”的权限太开放

相关内容