Git GUI 또는 ssh-keygen을 사용한 SSH 개인 키 권한이 너무 열려 있습니다.


244

최근에 github을 복제하거나 푸시 할 수 없었으며 근본 원인을 찾으려고합니다.

이것은 창문에 있습니다

나는 cygwin + git과 msysgit을 가지고 있습니다.

Msysgit은 다음 옵션으로 설치되었습니다 :

  • OpenSSH
  • Windows 명령 프롬프트에서 Git 사용

그것은 git을 사용할 수있는 4 가지 환경을 제공합니다.

  • Windows cmd 프롬프트
  • 파워 쉘
  • 힘내 배쉬
  • 사이 그윈

어떻게 든 msysgit, cmd.exe 또는 Powershell을 사용하여 리포지토리를 복제하려고 할 때 다음과 같은 오류가 발생합니다.

> Initialized empty Git repository in
> C:/sandbox/SomeProject/.git/
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> @    WARNING: UNPROTECTED PRIVATE KEY FILE!          @
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> Permissions 0644 for
> '/c/Users/Ben/.ssh/id_rsa' are too
> open. It is recommended that your
> private key files are NOT accessible
> by others. This private key will be
> ignored. bad permissions: ignore key:
> /c/Users/Ben/.ssh/id_rsa Permission
> denied (publickey). fatal: The remote
> end hung up unexpectedly

이것은 내 c : \ users \ ben \ 폴더의 .ssh 폴더를 사용하며 msysgit에서 사용됩니다. .ssh 폴더가 다른 위치에 있기 때문에 cygwin이 작동한다고 생각하지만 그 이유를 모르겠습니다.

Git Bash에서 권한을 확인합니다.

$ ls -l -a ~/.ssh

나에게주는 :

drwxr-xr-x    2 Ben      Administ        0 Oct 12 13:09 .    
drwxr-xr-x   34 Ben      Administ     8192 Oct 12 13:15 ..    
-rw-r--r--    1 Ben      Administ     1743 Oct 12 12:36 id_rsa
-rw-r--r--    1 Ben      Administ      399 Oct 12 12:36 id_rsa.pub    
-rw-r--r--    1 Ben      Administ      407 Oct 12 13:09 known_hosts

이러한 권한은 너무 완화되었습니다. 그들이이 방법을 어떻게 얻었는지 나는 모른다.

나는 그들을 바꿀 수 있습니다 ...

$ chmod -v -R 600 ~/.ssh

그것은 나에게 말한다 :

mode of `.ssh' changed to 0600 (rw-------)
mode of `.ssh/id_rsa' changed to 0600 (rw-------)
mode of `.ssh/id_rsa.pub' changed to 0600 (rw-------)
mode of `.ssh/known_hosts' changed to 0600 (rw-------)

그러나 효과가없는 것 같습니다. 여전히 같은 오류가 발생하여

$ ls -l -a ~/.ssh

이전과 동일한 권한을 얻습니다.

최신 정보:

cygwin에서 해당 파일에 대한 권한을 수정하려고 시도했지만 cygwin이 권한을 올바르게보고하지만 gitbash는 그렇지 않습니다. alt text http://cdn.cloudfiles.mosso.com/c54102/app7962031255448924.jpg

이 권한을 실제로 수정하는 방법에 대한 아이디어가 있습니까?


1
C : \ Users \ Ben \가 사용하는 기본 파일 시스템이 무엇인지 알려주십시오. 파일 시스템이 실제 권한을 지원하지 않거나 셸과 파일 시스템 사이의 매핑이 제대로 작동하지 않는 것 같습니다. Windows ACL을 통해 권한을 변경할 수 있습니까?
Chen Levy 09.

Windows 7을 사용하고 있습니다. 사용 권한을 변경할 수 있지만 무엇을해야합니까? 모든 github / ssh 문서에는 0600이 필요하다고 말하지만 Windows ACL에서 이것이 무엇을 의미하는지 잘 모르겠습니다.
Ben Scheirman 님이

2
음 ... 여기에 약간의 참고 사항이 있지만 디렉토리를 600으로 chmoding하는 것은 나쁜 생각입니다. 디렉토리 (및 실행 파일)는 항상 한 자리 더 높습니다 (700이 아닌 600, 755가 아닌 644). 디렉토리에서 그렇게하면 목록을 만들 수 없게됩니다. 자세한 설명 은 dartmouth.edu/~rc/help/faq/permissions.html 을 참조하십시오 .
Mark Embling

PuTTY 사용을 반대하십니까?
Greg Bacon

그것이 내 문제를 해결하면 아니오,하지만이 설정이 왜 작동하지 않는지 궁금합니다.
Ben Scheirman

답변:


361

전체 디렉토리에 대한 권한을 변경했습니다. Splash에 동의합니다. 디렉토리의 원래 권한이 무엇인지 기억할 수 있으면 다시 설정하고 다음을 수행하려고합니다.

cd ~/.ssh
chmod 700 id_rsa

.ssh 폴더 안에 있습니다. 그러면 소유자 (귀하) 만 id_rsa 파일을 rwx (읽기, 쓰기, 실행)로 설정하고 다른 사람은 액세스 할 수 없습니다.

원래 설정이 무엇인지 기억하지 못하는 경우 새 사용자를 추가하고 해당 사용자에 대한 SSH 키 세트를 작성하여 기본 권한이있는 새 .ssh 폴더를 작성하십시오. 새 .ssh 폴더를 .ssh 폴더 및 파일을 재설정 할 수있는 권한에 대한 참조로 사용할 수 있습니다.

그래도 문제가 해결되지 않으면 msysgit을 제거하고 컴퓨터의 모든 .ssh 폴더를 삭제하고 (안전한 방법으로) msysgit을 원하는 설정으로 다시 설치하고 완전히 다시 시작하십시오. 이미 시도했습니다).

편집 : Google을 통해이 링크를 찾았습니다 . "경고 : 보호되지 않은 개인 키 파일 수정!" 리눅스 에서 리눅스를 겨냥했지만 liunx 권한 등을 말하고 있기 때문에 도움이 될 수 있습니다.


2
이 답변은 특히 cygwin 또는 msysgit 사용에 적용됩니다 (msysgit은 cygwin의 하위 집합 또는 가능한 mingw32를 사용하기 때문에). 문제는 파일에 대한 권한입니다. Git은 (주로) 리눅스 권한으로 작업하는 것을 좋아한다. Winodws 셸에서 git.exe를 사용하면 문제가있는 것으로 알려져 있으므로 msysgit을 고수하는 것이 좋습니다. 적어도 GitSharp가 완전히 작동 할 때까지.
Koby

2
이것은 chmod 700 이후와 같이 Windows 8 및 1 월 '14 cygwin 설치에서 작동하지 않으며 파일을 rwxrwx ---로 표시합니다. 그룹 권한은 사용자 권한을 설정 한 모든 항목으로 설정되며 키를 사용할 수 없습니다.
Dean Hiller

1
@DeanHiller, 700의 권한은 다음과 같아야 -rwx------합니다. chmod 명령을 올바르게 수행하면 표시중인 내용이 올바르지 않습니다.
Koby

5
@ Koby 아니, 그것은 작업 aroudn와 버그였습니다 ... chgrp -R Users ~ / .ssh를 사용해야하고 chmod가 작동하고 실제로 권한을 올바르게 변경합니다 .... ... 마지막으로 발견 된 알려진 버그 다른 게시물.
Dean Hiller

2
올바른 권한을 chmod로 설정할 수 없거나 권한을 올바르게 읽을 수없는 Windows 용 GitBash에 어떤 종류의 버그가 있는지 확인할 수 있습니다. chmod 600 id_rsd; ls -l id_rs-> -rwx-r--r--
Charlweed

74

cygwin의 chmod에 버그가 있습니다. 다음을 참조하십시오 :

/superuser/397288/using-cygwin-in-windows-8-chmod-600-does-not-work-as-expected

chgrp -Rv Users ~/.ssh/* 
chmod -vR 600 ~/.ssh/id_rsa

어떤 이유로 든 Windows 권한에서 cygwin / * nix와 유사한 권한으로의 매핑은 약간 모호합니다. 나는 윈도우 측에서 다른 사용자의 모든 권한을 제거하더라도 여전히 Cygwin에서 나를는 대한 사용 권한을 적용 사용자가 다른, 그룹 의 이름 None. (이것은 그룹이 명시 적으로 정의되지 않은 경우 표준 절차라고 가정합니다.) 명시 적 그룹으로의 변경으로 Users인해 cygwin이 권한을 분리 할 수 ​​있었으며, 자동 660 대신 600을 설정할 수있었습니다.
t-mart

3
이것이 실제 정답입니다. 정답으로 투표 한 사람-나는 투표 한 사람들이 리눅스 사용자라고 생각하며 그가 명령을 올바르게 실행하고 있다는 것을 몰랐습니다. 나는 오늘 cygwin과 같은 문제가있었습니다. 감사!
michaelday

이 솔루션을 적용하기 전에 chmod 600git을 사용할 때 내 권한이 여전히이라고 불평합니다 0660. 그룹 소유권을 수정하여 chown을 올바르게 적용하십시오.
Guilherme Rodrigues

1
Cygwin을 업데이트하고 작동했습니다. 버그를 수정 했어야합니다.
Duncan Calvert

17

* nix 시스템의 경우 확실한 해결책은 chmod 600 id_rsa forc이지만 Windows 7에서는 잠시 벽에 머리를 대고 있어야했지만 마법의 해결책을 찾았습니다.

내 컴퓨터 / 마우스 오른쪽 버튼으로 클릭 / 속성 / 고급 시스템 설정 / 환경 변수로 이동하여 변수를 삭제 하십시오 (시스템 및 사용자 환경 모두에서 가능).

사이 윈

기본적으로 git windows 바이너리에서 사용하는 mingw32의 결함으로 모든 파일 (644)과 모든 폴더 (755)를 항상 볼 수 있습니다. 환경 변수를 제거해도 해당 동작이 변경되지는 않지만 문제를 무시하도록 ssh.exe에 나타납니다. 탐색기 보안 설정을 통해 id_rsa에 대한 적절한 권한을 설정 한 경우 (실제로는 "시스템"이 아니라 "관리자"가 아닌 "모두"가 아닌 다른 사용자가있을 필요가 없습니다.) , 여전히 안전합니다.

이제, 왜 mingw32, Cygwin에서와 다른 시스템을 만들 것입니다 어떤 Cygwin에서 환경 변수의 사용을, 내 능력 밖입니다. 나에게 벌레처럼 보인다.


3
이것은 나를 위해 작동하지 않았습니다. 여전히 "보호되지 않은 개인 키 파일"메시지가 나타납니다. 다른 사람이 비슷한 결과 로이 스레드에 올 경우를 대비하여 알려주고 싶었습니다.
Luc

나를 위해 일했다. 이것은 비록 asinine입니다. 더 이상 Cygwin을 사용하지 않습니다. 또한, 어떻게 지구상에서 이것을 알아 냈습니까?
gamut

13

XP를 사용 중이므로 Git Bash가 Github와 통신 할 수있게되었습니다 (많은 좌절 후).

  1. 복사 c:\cygwin\bin\cyg*(~ 50 개 파일)c:\Program Files\Git\bin\
  2. 복사 c:\cygwin\bin\ssh.exec:\Program Files\Git\bin\(덮어 쓰기)
  3. 다음을 포함하는 파일 c:\Documents and Settings\<username>\.ssh\config을 작성하십시오 .

    Host github.com
        User git
        Hostname github.com
        PreferredAuthentications publickey
        IdentityFile "/cygdrive/c/Documents and Settings/<username>/.ssh/id_rsa"
    
  4. (선택 사항) ssh -v git@github디버깅 된 연결을 보는 데 사용 합니다.

  5. 밀어보세요!

배경 : 일반적인 문제는이 두 가지의 조합입니다.

  • BUG : mingw32는 모든 파일을 644 (기타 / 그룹에서 읽을 수있는)로 인식하며 mingw32, cygwin 또는 Windows에서 시도한 아무것도 수정하지 못했습니다.
  • mingw32의 SSH 버전은 개인 키 (일반적으로 서버의 좋은 정책)를 허용하지 않습니다.

그것은 파일을 만들 필요 솔기없는 c:\Documents and Settings\<username>\.ssh\config당신이 교체 한 이후 c:\Program Files\Git\bin\ssh.exe 로를 c:\cygwin\bin\ssh.exe. 권리 ?
爱国者

"많은 좌절"의견에 동의합니다. gitolite의 경우 다음 단계에 따라 cygwin / bin / cyg *를 내 Git dir (PortableGit-또는-Program Files / Git)에 복사 한 다음 Git-Bash에서 git을 사용할 수 있지만 cygwin bash는 사용할 수 없습니다. PortableGit 및 Cygwin bin 디렉토리를 PATH에 추가하는 것도 제한적으로 성공했지만 여전히 실수로 사용되지 않도록 PortableGit / bin / ssh.exe {,. bak}을 이동해야했습니다. c : /cygwin/bin/ssh.exe와 동일). 기본적으로 ssh.exe는 복사되지 않은 다른 종속성으로 인해 cygwin 디렉토리에서 실행해야합니다.
마이클

지금 나를 위해 노력하고 있지만 시도 옆에 Git과 Cygwin을 PATH에 추가하고 cygwin의 ssh.exe가 (cygwin의 bin 디렉토리에서) 사용되도록 Git의 ssh.exe를 이동시키는 것이 좋습니다.
마이클

LogLevel DEBUGgit.exe에 의해 시작된 ssh.exe 프로세스에서 디버그 출력을 얻으려면 .ssh \ config 파일에 추가하십시오 .
knb

감사합니다-이 솔루션은 저에게 효과적이었습니다! 특히 c : \ cygwin \ bin \에서 ssh.exe, cygcrypto-0.9.8.dll, cygwin1.dll, cygminires.dll 및 cygz.dll을 C : \ Program Files \ Git \ bin \에 복사했습니다.
nexus-bytes

10

여기에 있는 Git을 사용하는 Windows 7의 경우 (Cygwin이 아닌 MinGW를 사용) :

  1. Windows 탐색기에서 id_rsa 파일을 마우스 오른쪽 단추로 클릭하고 특성을 선택하십시오.
  2. 보안 탭을 선택하고 편집 ...을 클릭하십시오.
  3. 관리자를 제외한 모든 그룹에 대해 모든 권한 옆의 거부 상자를 선택하십시오.
  4. 힘내 명령을 다시 시도

1
이것은 나를위한 것이었지만 이제는 ssh가 내 비밀번호를 좋아하지 않는 새로운 문제가 있습니다. 내 비밀번호는 키 파일을 제공합니다.
Jason Southwell

7

여기에 Win7의 권한 자체와 관련하여 Windows 파일을 실제로 변경하는 방법이 나와 있습니다. Windows 탐색기에서 ssh 키 찾기 : C : \ Users [your_user_name_here] .ssh \ id_rsa

파일> 속성> 보안 탭> 고급 버튼> 권한 변경을 마우스 오른쪽 버튼으로 클릭하십시오.

이제 실제로는 사용자 이름이 아닌 모든 사람을 제거하십시오. 여기에는 관리자 및 시스템 사용자가 포함됩니다. 이 시점에서 권한 상속에 대한 대화 상자가 표시 될 수 있습니다.이 파일 만 변경하기를 원하므로 상속하지 않는 옵션을 선택하십시오.

확인을 클릭하고 완료 될 때까지 저장하십시오.

내 창문이 명령 줄에서 파일 권한을 변경하지 않기 때문에 며칠 동안 싸웠습니다. 이렇게하면 흥미로운 결과를 초래할 수있는 흥미로운 해결 방법을 사용하는 대신 실제로 수행됩니다.


6

속성에서 파일 권한을 변경하고 상속을 비활성화하고 chmod 400을 실행해도 효과가 없었습니다. 개인 키 파일에 대한 권한은 다음과 같습니다.

-r--r ----- 1 alex 없음 1766 3 월 8 일 13:04 /home/alex/.ssh/id_rsa

그런 다음 그룹이 없음임을 알았으므로 방금 실행했습니다.

chown alex : 관리자 ~ / .ssh / id_rsa

그런 다음 chmod 400으로 권한을 성공적으로 변경하고 git push를 실행할 수 있습니다.


4

MAC 사용자 :

터미널에 다음을 입력하여 키 페어 파일의 설정을 변경하십시오.

chmod og-r *filename.pem*

(명령에 올바른 디렉토리 또는 경로 파일 이름이 있는지 확인하십시오).




2

최근에 Windows XP에서 동일한 문제가 발생했습니다. ~ / .ssh / id_rsa 파일에서 chmod 700을 시도했지만 작동하지 않는 것 같습니다. ~ / .ssh / id_rsa에서 ls -l을 사용하여 권한을 살펴본 결과 유효 권한이 여전히 644임을 알 수있었습니다.

그런 다음 Windows 권한도 폴더의 권한을 상속받으며 폴더는 여전히 모든 사람에게 열려 있음을 기억했습니다. 해결책은 폴더에 대한 권한을 설정하는 것일 수도 있지만 더 나은 방법은 시스템 에이 파일의 상속을 무시하도록 지시하는 것입니다. 파일 속성의 보안 탭에서 고급 옵션을 사용하여 "상속 권한 상속 ..."을 선택 취소하면됩니다.

이것은 같은 문제를 가진 다른 사람들에게 도움이 될 수 있습니다.


1

지금 Git 1.6.5를 사용하고 있는데 설정을 복제 할 수 없습니다.

Administrator@WS2008 /k/git
$ ll ~/.ssh
total 8
drwxr-xr-x    2 Administ Administ     4096 Oct 13 22:04 ./
drwxr-xr-x    6 Administ Administ     4096 Oct  6 21:36 ../
-rw-r--r--    1 Administ Administ        0 Oct 13 22:04 c.txt
-rw-r--r--    1 Administ Administ      403 Sep 30 22:36 config_disabled
-rw-r--r--    1 Administ Administ      887 Aug 30 16:33 id_rsa
-rw-r--r--    1 Administ Administ      226 Aug 30 16:34 id_rsa.pub
-rw-r--r--    1 Administ Administ      843 Aug 30 16:32 id_rsa_putty.ppk
-rw-r--r--    1 Administ Administ      294 Aug 30 16:33 id_rsa_putty.pub
-rw-r--r--    1 Administ Administ     1626 Sep 30 22:49 known_hosts

Administrator@WS2008 /k/git
$ git clone git@github.com:alexandrul/gitbook.git
Initialized empty Git repository in k:/git/gitbook/.git/
remote: Counting objects: 1152, done.
remote: Compressing objects: 100% (625/625), done.
remote: Total 1152 (delta 438), reused 1056 (delta 383)s
Receiving objects: 100% (1152/1152), 1.31 MiB | 78 KiB/s, done.
Resolving deltas: 100% (438/438), done.

Administrator@WS2008 /k/git
$ ssh git@github.com
ERROR: Hi alexandrul! You've successfully authenticated, but GitHub does not pro
vide shell access
Connection to github.com closed.

$ ssh -v
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007

chmod는 내 키에 대한 파일 권한도 수정하지 않습니다.

환경:

  • NTFS의 Windows Server 2008 SP2
  • 사용자 : 관리자
  • 환경 변수 :
    • PLINK_PROTOCOL = ssh
    • HOME = / c / 프로필 / 홈

업데이트 : Git 1.6.5.1도 작동합니다.


흥미 롭군 퍼티 옵션을 사용하고있는 것 같습니까?
Ben Scheirman

1

이것은 파일을 올바르게 chmod하기에 충분하지 않은 Windows에서 특히 관련된 문제입니다. 환경을 설정해야합니다.

Windows에서 이것은 나를 위해 일했습니다.

  1. cygwin을 설치하십시오.

  2. msysgit ssh.exe를 cygwin의 ssh.exe로 바꾸십시오.

  3. cygwin bash를 사용하여 개인용 키 파일 인 chmod 600은 나를 위해 "id_rsa"였습니다.

  4. 여전히 작동하지 않으면 제어판-> 시스템 특성-> 고급-> 환경 변수로 이동하여 다음 환경 변수를 추가하십시오. 그런 다음 3 단계를 반복하십시오.

    변수 값
    CYGWIN sbmntsec


1

1 단계를 수행 할 필요는 없지만 두 가지 작업을 수행하여이 문제를 해결할 수있었습니다.

  1. cygwin ssh.exe 및 모든 cyg * .dll에서 Git의 bin 디렉토리로 복사

  2. http://zylstra.wordpress.com/2008/08/29/overcome-herokus-permission-denied-publickey-problem/ 의 단계를 따르십시오.

    ~ / .ssh / config 파일에 몇 가지 세부 정보를 추가했습니다.

호스트 heroku.com
호스트 이름 heroku.com
포트 22
IdentitiesOnly 예
IdentityFile ~ / .ssh / id_heroku
TCPKeepAlive 예
사용자 brandon

heroku.com의 이메일 주소로 사용자를 사용해야했습니다. 참고 : 이것은 키를 만들어야한다는 것을 의미하며, 키를 생성하기 위해이 키를 따랐으며 키 이름을 묻는 메시지가 표시되면 id_heroku를 지정해야합니다 http : / 하십시오. /help.github.com/win-set-up-git/

  1. 그런 다음 키를 추가하십시오.
    heroku keys : add ~ / .ssh / id_heroku.pub

1

나를위한 비결은 CYGWIN 환경 변수를 " tty nodosfilewarning " 으로 업데이트하는 것이 었습니다 . 키를 chmod 할 필요조차 없었습니다.


0

기본 질문에 대한 직접적인 대답은 아니지만 cygwin의 폴더 작동 방식에 대한 질문에 ... cygwin은 일반적으로 모든 "귀하의"파일을 c : \ cygwin \ home \ username의 동등 항목에 저장합니다. 해당 폴더를 Windows 사용자 디렉토리가 아닌 사용자 별 설정으로 처리합니다.


0

개인 / 공개 키 쌍 (id_rsa / id_rsa.pub)을 유지하거나 벽에서 머리를 두드리는 이유가 없다면 github에서 다시 생성하고 공개 키를 업데이트하는 것이 좋습니다.

~ / .ssh 디렉토리의 백업 사본을 만들어 시작하십시오.

다음을 입력하고 기존 파일을 덮어 쓸지 여부에 대해 "y"로 응답하십시오.

ssh-keygen -t rsa

공개 키의 내용을 클립 보드에 복사하십시오. 아래는 Mac에서 수행하는 방법입니다.

cat ~/.ssh/id_rsa.pub | pbcopy

github의 계정으로 이동 하여이 키를 추가하십시오.

Name: My new public key
Key: <PASTE>

터미널을 종료하고 새 터미널을 다시 시작하십시오.

공개 키를 입력하지 않았을 때 "비밀번호 입력"과 같은 의미없는 오류 메시지가 표시되면이 시작 방법을 고려하십시오. 위에서 본 것처럼 복잡하지 않습니다.


0

Powershell에서 git을 완전히 작동시키지 못했습니다. 그러나 git bash 셸에는 권한 관련 문제가 없었으며 chmod 등을 설정할 필요가 없었습니다. ssh를 Github에 추가 한 후 시작되었습니다.



0

다른 시스템에서 키 파일을 복사 했습니까?

방금 id_rsa클라이언트 컴퓨터에 파일을 만든 다음 원하는 키를 붙여 넣었습니다. 권한 문제가 없습니다. 설정할 것이 없습니다. 방금 작동했습니다. PuTTYgen을 사용하여 개인 키를 만드는 경우에도 작동합니다.

다른 컴퓨터에서 복사하는 경우 숨겨진 그룹 문제 일 수 있습니다.

두 개의 Windows 8.1 시스템에서 테스트되었습니다. Sublime Text 3을 사용하여 개인 키를 복사하여 붙여 넣습니다. Git Bash 사용 (Git-1.9.4-preview20140611).


0

Cygwin 설치를 2015 년 2 월경 ( 1.7.34(0.285/5/3) 2015-02-04 12:14 x86_64 Cygwin) 버전으로 업그레이드 한 후 갑자기 UNPROTECTED PRIVATE KEY FILE경고가 발생했습니다.

다음 명령을 실행 한 후이 문제를 해결했습니다.

setfacl -s u::rw-,g::---,o:--- ~/.ssh/id_rsa

( 다른 질문에 대한 또 다른 대답은 더 많은 맥락을 제공합니다)


0

@ koby의 답변이 저에게 효과적이지 않으므로 약간 변경합니다.

cd ~/.ssh
chmod 700 id_rsa.pub

이것은 Mac에서 잘 작동합니다.


0

Windows 10에서 Vagrant 상자에 SSH를 시도하는 것과 동일한 문제가있었습니다. 이것은 이전 OpenSSH 버전의 버그처럼 보입니다. 나를 위해 일한 것 :

  1. 최신 OpenSSH 설치 http://www.mls-software.com/opensshd.html 하십시오.
  2. where.exe ssh

(Powershell을 사용하는 경우 ".exe"참고)

다음과 같은 것을 볼 수 있습니다.

C:\Windows\System32\OpenSSH\ssh.exe
C:\Program Files\OpenSSH\bin\ssh.exe
C:\opscode\chefdk\embedded\git\usr\bin\ssh.exe

위의 예에서 최신 OpenSSH는 경로에서 두 번째이므로 실행되지 않습니다.

순서를 변경하려면

  1. 마우스 오른쪽 버튼으로 Windows 버튼-> 설정-> "시스템 환경 변수 편집"
  2. "고급"탭에서 "환경 변수 ..."를 클릭하십시오.
  3. 시스템 변수에서 "경로"를 편집하십시오.
  4. "C : \ Program Files \ OpenSSH \ bin"및 "Move Up"을 선택하면 맨 위에 나타납니다.
  5. 확인을 클릭하십시오
  6. 새 환경 변수가 적용될 수 있도록 콘솔을 다시 시작하십시오.

0

내 시스템은 bash / cygwin / git / msysgit / maybe-more의 약간 혼란입니다 ...

chmod키 또는 config파일 에는 영향을 미치지 않았습니다 .

그런 다음 Windows에서 작동하기로 결정했습니다.

  1. 권한을 수정해야하는 파일을 마우스 오른쪽 단추로 클릭하십시오.
  2. 를 선택하십시오 Properties.
  3. Security탭을 선택 하십시오.
  4. Advanced하단 근처를 클릭하십시오 .
  5. 상단 근처에있는 Change을 클릭 Owner합니다.
  6. "My-Awesome-Username"을 입력하고 (명확하게 현재 Windows 사용자 이름으로 변경)을 클릭 Check Names한 다음을 클릭하십시오 OK.
  7. 에서 Permission entries:"내 최고 사용자 이름"이 아닌 각 사용자를 강조 표시하고Remove . "My-Awesome-Username"이 유일한 왼쪽이 될 때까지이 과정을 반복하십시오.
  8. "My-Awesome-Username"을 선택하고 클릭하십시오 Edit 아래를 .
  9. Type:상단의가로 설정되어 있는지 확인한 Allow다음 옆의 확인란을 선택하십시오.Full control .
  10. 히트 OK, Apply, OK, OK.

  11. 지금 다시 시도하십시오 ...

때때로 mock-bash가 파일 소유권을 제어 할 수없는 것 같습니다. 그것은 mock-bash 스크립트에서 생성되므로 특히 이상합니다. 그림을 이동.


0

여기에 제안 된 해결 방법 (chmod / chgrp / setfacl / windows perms)은 Windows 7 회사 VM에서 msys64와 함께 작동하지 않았습니다. 결국 나는 stdin에 제공된 키와 함께 ssh 에이전트를 사용하여 문제를 해결했습니다. 이것을 .bash_profile내 로그인에 추가 하면 기본적으로 로그인됩니다.

eval $(ssh-agent -s)
cat ~/.ssh/id_rsa | ssh-add -k -

이제 ssh 리모컨으로 git push 및 pull을 수행 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.