Windows CHMOD 600

时间:2011-03-10 19:12:23

标签: windows permissions ssh ssh-keys

我正在尝试使用Windows中的OpenSSH连接到Amazon EC2,但我需要设置密钥文件的权限。

相当于CHMOD 600的窗口是什么?

我已广泛搜索,只发现了blogspam。

编辑:Windows 7,使用DOS。

12 个答案:

答案 0 :(得分:27)

我意识到这有点老了,但我刚刚在Windows 7中找到了自己的解决方案。看起来这个问题没有得到解决。正如您在评论中所指出的那样,我在Cygwin missing cygintl-2.dll上遇到了所有相同的错误,包括chmod

经过广泛的研究,没有找到任何答案我跑了:

C:\Users\mztriz\.ssh>ssh -v
  

OpenSSH_3.8.1p1,OpenSSL 0.9.7d 2004年3月17日       用法:ssh [-1246AaCfghkNnqsTtVvXxY] [-b bind_address] [-c cipher_spec]                  [-D port] [-e escape_char] [-F configfile] [-i identity_file]                  [-L port:host:hostport] [-l login_name] [-m mac_spec] [-o option]                  [-p port] [-R port:host:hostport] [user @] hostname [command]

正如您所看到的,我运行的OpenSSH版本已经过时了。但是,我不知道这一点,因为快速谷歌搜索OpenSSH for Windows会返回此旧版本。

在查看版本控制后,我在该网站的下载部分找到了OpenSSH for Windows 6.9p1-1

这个较新版本的OpenSSH似乎解决了你提到的所有问题。

答案 1 :(得分:8)

修改权限,以便:

  • 密钥文件不从容器继承
  • 您(所有者)拥有完全访问权限
  • 删除任何其他用户(例如,SYSTEM,管理员)的权限条目
  • 为特殊用户 Everyone 添加条目,并将该用户的权限编辑为拒绝所有权限:
    • 在Windows资源管理器中右键单击该文件,然后选择“属性”>安全>高级,以获取高级安全设置对话框。
    • 单击“权限”选项卡,然后单击“更改权限”。
    • 单击“添加”,在“对象名称”字段中输入“所有人”,单击“检查名称”,然后单击“确定”。
    • 在“权限条目”对话框中,单击“完全控制的拒绝”列中的复选框。
    • 在每个对话框上单击“确定”以退出并关闭文件的“属性”对话框。

现在scp会读取权限0400并且会很高兴。杂交。

答案 2 :(得分:6)

右键单击文件/目录,选择“属性”,然后选择“安全性”。单击高级,然后单击编辑。取消选中“可继承”,然后在对话框中选择“删除”。删除所有明确的权限,为您的用户名添加“完全访问权限”。

答案 3 :(得分:6)

我也是同样的问题。解决方案,其工作原理是将ssh.exe的兼容模式设置为Windows XP SP3。

答案 4 :(得分:3)

我更喜欢 Cygwin 而不是 putty ,你可以在cygwin中运行chmod命令将PEM密钥的权限更改为400,然后你就可以了。

myuser@myuser-HP ~
$ ssh -i /cygdrive/c/Users/myuser/Downloads/mykey.pem ec2-user@xx.xx.xx.xx
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0550 for '/cygdrive/c/Users/myuser/Downloads/mykey.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/cygdrive/c/Users/myuser/Downloads/mykey.pem": bad permissions
Permission denied (publickey).

myuser@myuser-HP ~
$ chmod
chmod: missing operand
Try 'chmod --help' for more information.

myuser@myuser-HP ~
$ chmod 400 /cygdrive/c/Users/myuser/Downloads/mykey.pem

myuser@myuser-HP ~
$ ssh -i /cygdrive/c/Users/myuser/Downloads/meykey.pem ec2-user@xx.xx.xx.xx

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2015.09-release-notes/
[ec2-user@ip-xxx ~]$ ohyeah I am in!

答案 5 :(得分:3)

对于unix& OSX

很简单:

chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/

对于Windows

如果文件是Windows(NTFS)符号链接,则上述功能无法正常工作。您需要将其设为常规文件。我不知道为什么。

如果您没有openssh或cygwin,请使用chocolatey使用chocolatey轻松安装。

choco install cyg-get
使用chocolatey和run安装的

打开Cygwin终端(注意ssh-keygen创建新密钥):

cyg-get install openssh
ssh-keygen
cd ~/.ssh && explorer.exe .

验证密钥在那里(或用你想要的密钥替换它们),然后在Cygwin shell中:

chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/

或者您使用巧克力的SSH 包时使用(并生成密钥)的罕见情况:

chown -R $USER:users  /cygdrive/c/Users/$USER/.ssh
chmod -R 600 /cygdrive/c/Users/$USER/.ssh

答案 6 :(得分:3)

我在Windows 10上遇到了同样的问题。我通过添加我的用户并授予修改,阅读和放大来修复它。执行,读写权限。我删除了所有其他用户。以下是删除所有其他权限后的样子:

enter image description here

答案 7 :(得分:1)

我也是同样的问题。解决方案,其工作原理是将ssh.exe的兼容模式设置为Windows XP SP3。

- >这个答案适用于Windows 7

答案 8 :(得分:1)

今天,Windows上推荐的一种方法是使用PowerShell以及Get-AclSet-Acl Cmdlet。

这是一个示例,确保只有当前用户拥有文件夹及其中所有文件的权限 - 类似于Unix / Linux / OS X中.ssh文件夹的建议:

# get current ACL of directory
$Acl = Get-Acl -Path $Directory

# remove inheritance ($true) and remove all existing rules ($false)
$Acl.SetAccessRuleProtection($true,$false)

# create new access rule for
# current user
# with FullControl permission
# enable inheritance for folders and files
# enable it for the specified folder as well
# allow these conditions 
$AcessRule = [System.Security.AccessControl.FileSystemAccessRule]::new(
    $env:USERNAME,
    "FullControl",
    ([System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit),
    System.Security.AccessControl.PropagationFlags]::None,
    [System.Security.AccessControl.AccessControlType]::Allow)

# add access rule to empty ACL
$Acl.AddAccessRule($AcessRule)

# activate ACL on folder
Set-Acl -Path $SgwConfigDirectory -AclRule

有关详细信息,请参阅

答案 9 :(得分:1)

chmod将无法在Windows中运行。尝试以下方法限制访问权限

  • 右键单击文件>属性>安全性>高级>禁用继承>'将继承的权限转换为对该对象的显式权限'
  • 单击“允许|每个人|完全控制”>编辑>'选择主体'>输入用户名>'检查名称'>选择用户名>确定>确定>确定(确定,直到关闭所有窗口)

答案 10 :(得分:-1)

并没有真正回答相同的问题,但我能够使用这些说明连接到EC2:

SSH to EC2 linux instance from Windows

答案 11 :(得分:-1)

通过scp将文件复制到Unix系统,并将chmod 600复制到文件。 然后将文件传输回Windows计算机。 它对我有用。