Cygwin의 ssh.exe를 사용하는“잘못된 소유자 또는 권한”오류


29

Cygwin (Windows 7)에서 ssh.exe를 사용하려고합니다. 에 config파일을 복사했습니다 c:\cygwin\home\[USERNAME]\.ssh. ssh(예를 들어 ssh -vT git@bitbucket.org) 를 실행 하면 다음 오류가 발생합니다.

OpenSSH_5.9p1, OpenSSL 0.9.8r 2011 년 2 월 8 일 /home/[USERNAME]/.ssh/config에 대한 잘못된 소유자 또는 권한

ssh구성 파일을 읽으 려면 어떻게합니까 ?

답변:


46

위와 같이 한 후에 나는 항상 이것을 얻었습니다.

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. 그래서 실행 한 chown.ssh폴더를 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 755 known_hosts

참고 : 개인 키에 600 만 설정하면됩니다.

그런 다음 ssh를 시도하십시오.

당신이 얻을 때..

알려진 호스트 목록에 'HOST_IP'(RSA)를 영구적으로 추가했습니다.

모드 600을 교체 할 수 있습니다

$ chmod 600 known_hosts

추신 : 나는 이것이 Windows 8의 버그라고 생각합니다.


받아 들여진 대답은 효과가 없었지만 이것은 효과가있었습니다. 감사!
Achal Dave

또한 이것은 매우 이상한 버그입니다. 내 컴퓨터 (W8.1)에서 Vim에서 .ssh / config 파일을 편집하면 항상이 버그가 발생합니다. 내 ssh 구성을 변경할 때 마다이 명령을 실행해야하므로 매우 성가시다.
Achal Dave

4
영어 이외의 버전의 Windows를 사용하는 경우이 명령을 실행할 때 "사용자"의 로케일 번역을 사용해야합니다. 예를 들어 네덜란드어에서는 "chown -R : Gebruikers .ssh"가됩니다
Alexander Kellett

1
나를 위해, 이것은 효과가 있었다 : chown -R m0j0 : Users .ssh && chmod -R go-rwx .ssh
m0j0

1
고맙습니다. 이것도 저에게 효과적이었습니다. 독일어로 당신은 사용해야합니다chown -R [Username]:Benutzer .ssh/
con

20

이 답변은 https://superuser.com/a/875934/82032 에서 그대로 복사됩니다 . 이것은 최근 cygwin 업그레이드 후 저에게 효과적이었습니다.

ACL을 잊지 마십시오

ACL 파일을 제거 하고 권한을 재설정하기 전까지는 아무런 효과가 없었습니다 .

#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:---

이것은 내가 업그레이드 Cygwin에서 후해야 할 일을했을 것입니다
blockloop

1
이 1.7.34-6 Cygwin에서 필요
ClintM

이것이 나를 위해 일한 것입니다!
Ashutosh Jindal

9

configCygwin의 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

유닉스 및 OSX

아주 간단하게 :

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

Windows의 경우

파일이 windows (NTFS) 심볼릭 링크 인 경우 위의 작업이 작동하지 않습니다. 일반 파일로 만들어야합니다. 왜 그런지 잘 모르겠습니다.

openssh 또는 cygwin이없는 경우 초콜릿을 사용하여 쉽게 설치하십시오.

choco install cyg-get

chocolatey와 함께 설치된 Cygwin Terminal열고 실행하십시오 ( ssh-keygen새 키 작성 참고 ).

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

키가 있는지 확인하거나 원하는 키로 바꾼 다음 Cygwin 셸에 다음을 입력하십시오.

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

그룹은 일반적으로 파일에서 잘못되기 때문에 이것은 일반적으로 저에게 적합합니다.
Alan Krueger

3

Windows가 미국 영어가 아닌 경우 중요한 참고 사항 : "사용자"그룹의 이름은 로캘에 따라 다릅니다. 예를 들어, Windows가 스페인어 인 경우 파일 소유권을 다음과 같이 변경해야합니다.chown $USER:Usuarios *


1

이 (chmod / chown / icacls / setacl / copyacls / explorer> security) 중 어느 것도 내 cygwin64 / win7 / admin에서 작동하지 않았습니다. 마지막 으로이 cygwin64/ssh -F ~/.ssh/config솔루션은 cygwin32의 오래된 ssh를 사용하거나 git의 ssh를 Windows 용으로 사용합니다.


를 사용 -F하면의 문제는 해결 config되지만 개인 키에 대한 권한은 해결되지 않습니다.
Jari

0

dir 간단한 솔루션 noacl으로 경로 를 사용하는 사람들에게는 ~/.ssh기본 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-xrw-r--r--. 으로 /계층 구조가없이해야한다 noacl(또는 함께해야합니다 acl) 당신은 그것을 Cygwin에서의 응용 프로그램에 대한 문제가 장소를 여기 디렉토리와 지점을 만들 수 있습니다.


1
이것이 디렉토리 인 경우 간단한 솔루션은 junction을 사용합니다. 왜냐하면 심볼릭 링크를 설정하는 데 필요한 권한이 필요하지 않기 때문입니다. 그것은 Sysinternals Suite mklink /jjunction도구 일 것 입니다.
0xC0000022L

0

tldr : 관리자로 구성을 만들었을 수 있습니다

해결책

실수로 파일을 관리자로 작성하고 로컬 perms와 함께 파일을 사용하려고하면 이러한 솔루션이 과도해질 수 있습니다.

  • ssh 구성의 내용을 복사하십시오.
  • 파일 삭제
  • 새 셸 열기 (로컬-비 관리자)
  • 구성이 저장된 경로 ( 일반적 ~/.ssh으로 PowerShell 또는 %userprofile%\.sshcmd )로 이동하십시오.
  • 운영 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
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.