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
に設定ファイルを読み込ませるには?
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
上記のようにした後、私はいつもこれを手に入れました:
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のバグだと思います。
この回答はそのまま 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:---
非常に単純に:
chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/
ファイルが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
Windowsが米国英語でない場合の重要な注意:「ユーザー」グループの名前はロケールに依存します。たとえば、Windowsがスペイン語の場合、chown $USER:Usuarios *
でファイルの所有権を変更する必要があります。
これら(chmod/chown/icacls/setacl/copyacls/Explorer> security)のどれも私のcygwin64/win7/adminで機能しませんでしたが、最後にcygwin64/ssh -F ~/.ssh/config
他の解決策は、cygwin32で古いsshを使用するか、Windowsのgitでsshを使用することです。
~/.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のアプリの問題のある場所を指定できます。
tldr:管理者として設定を作成した可能性があります
これらのソリューションは、誤ってファイルを管理者として作成し、ローカルの権限でファイルを使用しようとした場合、やり過ぎになる可能性があります。
~/.ssh
またはcmdで%userprofile%\.ssh
))notepad .\config
を実行します$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
}