PyCharm (JetBrains)에서 여러 private key를 github에서 사용

목표 달성을 위해 .ssh/config를 사용하고 싶습니다.



환경


  • Windows 10
  • PyCharm Professional 2018.3
  • git 명령은 cygwin을 사용합니다.

    PyCharm 설정은?





    File->Settings->Git에서 Path to Get executable을 cygwin의 git.exe로, SSH executable을 Native로 만듭니다. 여기서 git을 실행할 곳을 설정할 수는 있지만 Native가 ssh.exe를 호출하는 방법을 모르기 때문에 .ssh/config를 어디에 넣을지 모릅니다.

    ssh.exe가 어디에 있는지 알아보기



    시도에 명령 프롬프트에서 ssh.exe가 어디에 있는지, .ssh 디렉토리를 어디에 두면 좋은지 추측해 본다.
    C:\Users\yamachan>where ssh
    C:\Windows\System32\OpenSSH\ssh.exe
    C:\Users\yamachan>set HOMEPATH
    HOMEPATH=\Users\yamachan
    

    C:\Windows\System32\OpenSSH\ssh.exe라면, 아마\$HOMEPATH/.ssh 를 읽으러 갈 것입니다(디렉토리로 해 Windows 부속의 OpenSSH 같기 때문에). 그리고 어쩌면 PyCharm도 명령 프롬프트와 같은 PATH에서 ssh.exe를 실행 (즉, C :\Windows\System32\OpenSSH\ssh.exe)하고\$ HOMEPATH/.ssh를 읽으러 갈 것입니다.

    $HOMEPATH 아래에 .ssh/config 를 넣어보세요.



    .ssh/config
    Host github.com
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_rsa
    Host github.com-piwikjapan
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_rsa-piwikjapan
    

    도메인이 github.com-piwikjapan이면 id_rsa-piwikjapan이라는 개인 키로 전환됩니다. 실제로 실험 한 git 저장소는 다음과 같습니다.
    [email protected]:piwikjapan/kusanagi-vagrant.git
    

    PyCharm 에서 github 으로 push 하면 Bad owner or permissions on ...




  • 다른 ID로 만들었으므로 ID 알 수있는 곳만 흰색으로 칠했습니다.

    위의 .ssh/config 를 설정하고 PyCharm 에서 github.com-piwikjapan 을 사용하여 pull 되고 push 되면 오른쪽 하단에 페로와 표시가 나옵니다. 이 Bad owner or permissions 를 누가 하고 있는가, 하지만 시도해 명령 프롬프트로부터 적당한 Linux 에 ssh 로그인 해 보겠습니다:
    C:\Users\yamachan>ssh 10.233.3.35
    Bad owner or permissions on C:\\Users\\yamachan/.ssh/config
    

    같은 메시지입니다 ... 즉, PyCharm에서 C :\Windows\System32\OpenSSH\ssh.exe를 사용하고 있음을 알 수 있습니다. 3.35라고 해도 Bad owner or permissions는 나오지 않았다).
    결국 알았던 것이 cygwin 환경에서 .ssh/config 를 만들고\$HOMEPATH(C:\Users\yamachan)에 cygwin cp 명령으로 복사한 것이 좋지 않은 것 같습니다. cygwin 환경의 .ssh/config 에서,\$HOMEPATH 에의 카피를 explorer 로 실시하면 Bad owner or permissions 는 더 이상 없습니다.

    다음은 SSH Keyboard Interactive라는 수수께끼의 화면입니다.





    Bad owner or permissions 가 없어졌지만 github.com-piwikjapan 에 push 하려고 하면 다음은 SSH Keyboard Interactive 라고 하는 소창이 나오고 무엇인가 입력하라고 합니다. 무시하고 OK 를 클릭하면:



    Host key verification failed 와 오른쪽 하단에 페로로 표시됩니다. Host key verification이므로, 괜찮다고 생각하고 명령 프롬프트에서 :
    C:\Users\yamachan>ssh github.com-piwikjapan
    The authenticity of host 'github.com (192.30.255.112)' can't be established.
    RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'github.com,192.30.255.112' (RSA) to the list of known hosts.
    PTY allocation request failed on channel 0
    Hi piwikjapan! You've successfully authenticated, but GitHub does not provide shell access.
    Connection to github.com closed.
    
    C:\Users\yamachan>
    

    .ssh/known_hosts가 없었습니다. 이제 github.com-piwikjapan에서도 푸시가 가능합니다.
  • 좋은 웹페이지 즐겨찾기