我们正在尝试通过使 SSH 在没有 SSH 私钥权限验证的情况下工作来修复某些文件系统所遇到的问题。
错误信息:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 警告:未受保护的私钥文件!@ @@ ...
由于某些奇怪的原因,我们无法更改某些文件的访问权限(欢迎来到 Windows 的 Cygwin 世界)
有人知道是否有办法通过任何方式绕过 ssh 验证吗?我在 ssh 选项中没有找到任何相关内容。
如果您回复 chmod 400 或 600,那不是我想要的!
答案1
有人知道是否有办法通过任何方式绕过 ssh 验证?
在这种情况下,你的问题毫无意义......你收到错误是由于错误的权限和/或密钥所有权,因为密钥只能由其预期用户访问,而不能由其他帐户、服务或组访问:
- 图形用户界面(GUI):
[文件]特性→安全→先进的- 所有者:更改 →选择校长→ 输入密钥的用户 → 确定
- 权限条目:删除除密钥用户之外的所有内容
- 将密钥的用户设置为完全控制如果尚未设置
- 选择用户 → 修改 → 完全控制 → 确定
或者 - 添加 →选择校长→ 输入密钥的用户 → 确定
- 选择用户 → 修改 → 完全控制 → 确定
- 确定 → 确定
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:“私钥”的权限太开放