web-dev-qa-db-ja.com

Cygwinのssh.exeを使用した「不適切な所有者または権限」エラー

Cygwin(Windows 7)でssh.exeを使用しようとしています。 configファイルをc:\cygwin\home\[USERNAME]\.sshにコピーしました。 ssh(たとえば、ssh -vT [email protected])を実行すると、次のエラーが発生します。

OpenSSH_5.9p1、OpenSSL 0.9.8r 2011年2月8日/home/[USERNAME]/.ssh/configの不正な所有者または権限

sshに設定ファイルを読み込ませるには?

29
Rebecca Scott

Cygwinのconfigコマンドを使用して、lsファイルの権限を確認します。

> c:\cygwin\bin\ls.exe -la c:\cygwin\home\[USERNAME]\.ssh

おそらく次のようになります。

total 5
drwxrwxrwt+ 1 Administrators None  0 Oct 20 17:02 .
drwxr-xr-x+ 1 [USERNAME]     None  0 Oct 19 08:15 ..
-rw-------  1 Administrators None 57 Oct 20 16:58 config

設定ファイルは[USERNAME]に属している必要があります。これを試して:

> c:\cygwin\bin\chown.exe [USERNAME] c:\cygwin\home\[USERNAME]\.ssh\config

ls -laに正しい所有者が表示されます。それでも機能しない場合は、モード(権限)をリセットしてみてください。

> c:\cygwin\bin\chmod.exe 700 c:\cygwin\home\[USERNAME]\.ssh\config
9
Rebecca Scott

上記のようにした後、私はいつもこれを手に入れました:

total 22
drwxrwxr-x+ 1 jl None    0 Sep  9 18:44 .
drwxrwxr-x+ 1 jl None    0 Sep  9 18:44 ..
-rw-rw----  1 jl None  129 Jul  1 14:30 config

.ssh/configのエラー。 .sshフォルダーでchownを実行し、再びchmodを次のように実行します。

> chown -R [USERNAME]:users .ssh/

その後:

> chmod -R 600 .ssh/

そして最後に私はそれを機能させました:

total 29
drwxrwxr-x+ 1 jl None     0 Sep  9 18:44 .
drwxrwxrwt+ 1 jl None     0 Sep  9 18:44 ..
drw-------+ 1 jl Users    0 Sep  9 18:44 .ssh

編集(Windows10のbashの場合)

エラーが発生したとき.

既知のホストのリスト(/PATH_TO_HOME/USERNAME/.ssh/known_hosts)にホストを追加できませんでした。

Known_hostsが書き込み可能であることを確認してください

$ chmod 755known_hosts

注:秘密鍵には600を設定するだけでよいと思います

次に、sshを試してください。

あなたが取得するとき..

既知のホストのリストに「Host_IP」(RSA)を永続的に追加しました。

モード600を置き換えることができます

$ chmod 600 known_hosts

P.S。:これはWindows 8のバグだと思います。

46
Joaolvcm

この回答はそのまま https://superuser.com/a/875934/82032 からコピーされます。これは、最近のcygwinのアップグレード後に機能した唯一の答えです。

ACLを忘れないでください

ACLs のファイルを削除してアクセス許可をリセットするまで、何も機能しませんでした。

#remove ACLs
setfacl -b ~/.ssh/config

#reset permissions
chmod 0600 ~/.ssh/config

getfaclを使用して、ファイルの現在のACLを表示できます。

getfacl ~/.ssh/config

ACLを削除する前に(壊れています):

# owner: Administrators
# group: None
user::rw-
group::---
group:Authenticated Users:rwx
group:SYSTEM:rwx
mask:rwx
other:---

後:(稼働中)

# file: config
# owner: myusername
# group: None
user::rw-
group::---
other:---
20
gdw2

UNIXおよびOSXの場合

非常に単純に:

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

Windowsの場合

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

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

choco install cyg-get

Open Cygwin Terminal Chocolateyでインストールされて実行されます(注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
9
Jonathan

Windowsが米国英語でない場合の重要な注意:「ユーザー」グループの名前はロケールに依存します。たとえば、Windowsがスペイン語の場合、chown $USER:Usuarios *でファイルの所有権を変更する必要があります。

3
RAKK

これら(chmod/chown/icacls/setacl/copyacls/Explorer> security)のどれも私のcygwin64/win7/adminで機能しませんでしたが、最後にcygwin64/ssh -F ~/.ssh/config他の解決策は、cygwin32で古いsshを使用するか、Windowsのgitでsshを使用することです。

1
mosh

~/.ssh dirを使用したパスでnoaclを使用する場合の簡単な解決策は、ネイティブNTFSシンボリックリンクを作成することです。

cmd# mklink c:\home\.ssh c:\opt\cygwin\home\misc\.ssh
symbolic link created for c:\home\.ssh <<===>> c:\opt\cygwin\home\misc\.ssh

noaclでは、rwxr-xr-xまたはrw-r--r--以外の権限を設定する方法はありません。 /階層にはnoaclがない(またはaclがあるはず)ので、ここにディレクトリを作成して、Cygwinのアプリの問題のある場所を指定できます。

0
gavenkoa

tldr:管理者として設定を作成した可能性があります

解決

これらのソリューションは、誤ってファイルを管理者として作成し、ローカルの権限でファイルを使用しようとした場合、やり過ぎになる可能性があります。

  • Ssh設定の内容をコピーします
  • ファイルを削除する
  • 新しいシェルを開きます(ローカル-非管理者)
  • 設定が保存されているパスに移動します(通常はPowerShellで~/.sshまたはcmd%userprofile%\.ssh))
  • notepad .\configを実行します

簡単なコマンド(PowerShell):

$sshPath = '~/.ssh/config'
$content = cat $sshPath
# In case the line above fails, this check will prevent your current config to get deleted
if ($content) {
  rm $sshPath
  $content | Out-File -en ascii $sshPath
}
0
AP.