web-dev-qa-db-ja.com

Windows CHMOD 600

WindowsでOpenSSHを使用してAmazon EC2に接続しようとしていますが、キーファイルのアクセス許可を設定する必要があります。

CHMOD 600と同等のウィンドウは何ですか?

私は広範囲にグーグルで調べましたが、ブログスパムだけを見つけました。

編集:DOSを使用したWindows 7。

35

これはやや古いことはわかっていますが、Windows 7で解決策を見つけたところです。この問題は解決されなかったようです。 chmodCygwin missing cygintl-2.dllを含むすべてのエラーは、コメントで指摘したとおりです。

広範な調査を行ったが、答えが見つからなかった後、私は走りました:

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 [コマンド]

お気づきのように、私が実行していたOpenSSHのバージョンはかなり時代遅れでした。ただし、OpenSSH for WindowsをすばやくGoogle検索すると、この古いバージョンが返されるため、これを知りませんでした。

バージョン管理を調べたところ、そのWebサイトのダウンロードセクションに OpenSSH for Windows 6.9p1-1 が見つかりました。

このOpenSSHの新しいバージョンは、あなたが言及したすべての問題を解決するようです。

27
에이바

次のように許可を変更します。

  • キーファイルはコンテナから継承しません
  • あなた(所有者)にはフルアクセスがあります
  • 他のユーザー(SYSTEM、Administratorなど)のアクセス許可エントリを削除します
  • 特別なユーザーEveryoneのエントリを追加し、そのユーザーのアクセス許可を編集して、すべてのアクセス許可を拒否します:
    • Windowsエクスプローラでファイルを右クリックし、[プロパティ]> [セキュリティ]> [詳細設定]を選択して、[セキュリティの詳細設定]ダイアログを表示します。
    • [権限]タブをクリックし、[権限の変更]をクリックします。
    • [追加]をクリックし、[オブジェクト名]フィールドに「全員」と入力し、[名前の確認]をクリックして、[OK]をクリックします。
    • [アクセス許可エントリ]ダイアログで、[フルコントロール]の[拒否]列のチェックボックスをクリックします。
    • 各ダイアログで[OK]をクリックして、ファイルのプロパティダイアログをバックアウトして閉じます。

これでscpはアクセス許可0400を読み取り、満足します。 Hは。

8
user2309219

私は同じ問題に行きました。解決策は、ssh.exeの互換モードをWindows XP SP3に設定することでした。

6
Ralfeus

ファイル/ディレクトリを右クリックし、[プロパティ]、[セキュリティ]の順に選択します。 [詳細]、[編集]の順にクリックします。 「継承可能」のチェックを外し、ダイアログで「削除」を選択します。残っている明示的な許可をすべて削除し、ユーザー名に「フルアクセス」許可を追加します。

6
Erik

UNIXおよびOSXの場合

非常に単純に:

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

Windowsの場合

ファイルがWindows(NTFS)シンボリックリンクの場合、上記は機能しません。通常のファイルにする必要があります。理由はわかりません。

Opensshまたはcygwinがない場合は、chocolateyを使用して chocolatey を使用して簡単にインストールします。

choco install cyg-get

chocolateyをインストールして実行したCygwin Terminalを開き、実行します(ssh-keygenは新しいキーを作成します):

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

キーが存在することを確認し(または必要なキーに置き換えて)、Cygwin Shellで:

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

または、chocolateyのSSHパッケージを使用している(およびキーを生成している)まれな場合:

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

CygwinよりもPuTTYの方が好きで、cygwinでchmodコマンドを実行するだけでPEMキーのアクセス許可を400に変更できます。

myuser@myuser-HP ~
$ ssh -i /cygdrive/c/Users/myuser/Downloads/mykey.pem [email protected]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         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 [email protected]

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

https://aws.Amazon.com/Amazon-linux-AMI/2015.09-release-notes/
[ec2-user@ip-xxx ~]$ ohyeah I am in!
3
B.Mr.W.

Windows 10でも同じ問題が発生しました。ユーザーを追加し、変更、読み取りと実行、読み取りと書き込みのアクセス許可を付与することで修正しました。他のすべてのユーザーを削除しました。他のすべての権限を削除すると、次のようになります。

enter image description here

3
Erin

今日、Windowsで推奨される方法の1つは、PowerShellとGet-AclおよびSet-Aclコマンドレットを使用することです。

現在のユーザーのみがフォルダーとその中のすべてのファイルへのアクセス許可を持っていることを確認する例を次に示します-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

詳細については

1

私は同じ問題に行きました。解決策は、ssh.exeの互換モードをWindows XP SP3に設定することでした。

->この回答はWindows 7で機能します

1
tCheang