Programing

SSH 키-여전히 비밀번호 및 비밀번호 문구 요청

lottogame 2020. 2. 20. 23:15
반응형

SSH 키-여전히 비밀번호 및 비밀번호 문구 요청


리포지토리를 복제 할 때 항상 사용자 이름과 비밀번호를 묻는 Github을 사용하여 다소 '퍼팅'했습니다. 이 단계는 워크 플로 내에서 성가 시므로이 단계를 무시하고 싶습니다.

이 안내서를 사용하여 SSH 키 (성공적으로 설정)를 설정하려고했습니다. https://help.github.com/articles/generating-ssh-keys 그리고 나는 성공했습니다.

내 문제는 저장소를 복제 할 때 (SSH를 사용하여) 여전히 github 비밀번호와 암호 문구를 묻는 것입니다. 이 SSH 키를 설정 한 후에는 더 이상 그렇게 할 필요가 없다는 것을 이해했습니다.

무엇을 물어볼 지 잘 모르겠으므로 목표를 말씀 드리겠습니다.

항상 Github 정보를 입력하지 않고도 리포지토리를 복제 할 수 있기를 원합니다 .

SSH 키에서 무엇을 놓치고 있습니까? 누군가가 어떤 지침이나 리소스를 제공 할 수 있다면 GitHub의 SSH 인증과 관련하여 항상 약간의 손실을 느꼈기 때문에 감사하겠습니다.

내 지식으로, 이것은 제대로 작동하는지 테스트하는 명령입니다. 다음은 내 콘솔의 출력입니다.

~ $ ssh -T git@github.com
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.

비밀번호를 입력 할 때 먼저 실패해야합니까? 그런 다음 암호를 입력하면 통과합니다.


당신이 작업하는 경우 HTTPsURL을 항상 사용자 이름 / 암호를 요청할 것입니다.

SSH리모컨을 복제 / 설정할 때 올바르게 사용하는 경우 그런 다음 비밀번호를 기억할 ssh 에이전트가 있는지 확인하십시오. 이렇게하면 터미널 세션에서 암호를 한 번만 입력 할 수 있습니다.

여전히 성가신 경우 암호없이 ssh 키를 설정하십시오.


키 체인없이 아이덴티티 추가

암호문을 키 체인에 저장하고 싶지 않지만 암호문을 반복해서 입력하지 않아도되는 경우가 있습니다.

다음과 같이 할 수 있습니다.

ssh-add ~/.ssh/id_rsa 

암호문을 입력하고 입력 한 후 다시 시작할 때까지 다시 묻지 않습니다.

키 체인을 사용하여 아이디 추가

@dennis가 주석에서 지적했듯이 암호를 키 체인에 저장하여 재시작을 통해 암호문을 유지하려면 다음과 같이 ID를 추가 할 때 -K옵션 ( -kUbuntu의 경우)을 사용할 수 있습니다 .

ssh-add -K ~/.ssh/id_rsa

다시 한 번 암호문을 입력하고 입력하면 이번에는이 신분을 다시 묻지 않습니다.


Mac OSX에서는 다음 명령을 사용하여 개인 키를 키 체인에 추가 할 수 있습니다.

ssh-add -K /path/to/private_key

개인 키가 ~ / .ssh에 저장되고 이름이 id_rsa 인 경우 :

ssh-add -K ~/.ssh/id_rsa

그런 다음 암호를 입력하라는 메시지가 표시되며 키 체인에 저장됩니다.

편집-핸들 재시작

다시 시작한 후에도 비밀번호를 입력하지 않으려면 ssh 구성 파일 (일반적으로 ~ / .ssh / config에 있음)에 다음을 추가하십시오.

Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

나는 여기에 모든 대답을 시도했지만 이 답변들 중 아무것도 효과가 없었습니다 ! 암호는 Mac의 세션 / 레스토랑간에 유지되지 않습니다.

내가 읽고 발견 이 OpenRadar이 트위터 논의하는 것이 었습니다 애플이 의도적으로 동작을 변경하지 이상 자동으로 이전 SSH 키를로드 no로 맥 OS 10.12 시에라 ssh를-에이전트. El Cap과 동일한 동작을 유지하기 위해 다음을 수행했습니다.

  1. ssh-add -K ~/.ssh/id_rsa
    참고 : id_rsa 키가있는 경로를 변경하십시오.
  2. ssh-add -A
  3. 다음 ~/.ssh/config파일을 작성하거나 존재하는 경우 편집 하십시오.

    Host *
      UseKeychain yes
      AddKeysToAgent yes
      IdentityFile ~/.ssh/id_rsa
    

그리고 이제 내 컴퓨터를 재시동 할 때마다 암호가 기억됩니다!


키의 암호를 제거 할 수 있습니다

$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

또는 당신은 실행할 수 있습니다

$ ssh-keygen -p

키 파일에 대한 프롬프트가 표시됩니다. 기본적으로 ~/.ssh/id_rsaEnter 키를 누릅니다

현재 암호 문구를 입력하라는 메시지가 표시됩니다.

그런 다음 새 암호 문구를 입력하라는 메시지가 표시되면 Enter 키를 누릅니다


다음 명령을 실행하십시오.

ssh-add -K

비밀번호를 다시 입력하라는 메시지는 표시되지 않습니다.


저장소에 ssh를 사용하고 있는지 확인하십시오.

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin git@github.com:eMahtab/jenkins-cje-2017.git (fetch) origin git@github.com:eMahtab/jenkins-cje-2017.git (push)

여기에 이미지 설명을 입력하십시오

https를 사용하지 마십시오. 리모컨이 https를 사용하는 경우 공개 키를 Github에 추가하고 개인 키를 ssh-agent에 추가 한 경우에도 비밀번호를 묻는 메시지가 계속 표시됩니다. 아래는 항상 비밀번호를 요구합니다

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch) origin https://github.com/eMahtab/jenkins-cje-2017.git (push)


당신이 창문을 사용한다면, 이것은 나를 위해 일했습니다 :

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa

두 번째 명령에서 암호를 요구할 것입니다.


나는 실행해야했다.

eval `ssh-agent -s`
ssh-add

참고 : 다시 시작할 때마다이 작업을 다시 수행해야합니다. 이를 피하려면 창에 있는 " .bashrc "파일 에 입력하십시오 C:\Users\<<USERNAME>>\.bashrc. 숨겨져있을 수 있으므로 숨겨진 파일을 볼 수 있는지 확인하십시오.

해결책은 여기에 있습니다 .


시도 ssh-agent는이 설명과 같이 https://help.github.com/articles/working-with-ssh-key-passphrases


이 답변은에서 나를 위해 일했습니다 Ubuntu.

원격의 URL을 https에서 ssh로 변환하려면이 GitHub 문서를 참조하십시오. https://help.github.com/articles/changing-a-remote-s-url/
원격의 URL이 ssh인지 https인지 확인하려면을 사용하십시오 git remote -v.

https에서 ssh로 전환하려면 다음을 수행하십시오.
git remote set-url origin git@github.com:USERNAME/REPOSITORY.git


Mac OSX Sierra의 경우 Open Radar의 github 문제에서 제안 된 수정 사항으로 문제가 해결되었습니다. Sierra가 기본 동작을 변경 한 것 같습니다 (업그레이드 후이 문제가 발생하기 시작했습니다).

이것은 특히 유용하다고 생각합니다 : https://github.com/lionheart/openradar-mirror/issues/15361#issuecomment-249059061

ssh-add -A 

이로 인해 내가 실행 한 후 에이전트에 ID가 추가되었습니다

ssh-add -K {/path/to/key}

OSX.12에서 요약하면 다음과 같습니다.

ssh-add -K {/path/to/key}
ssh-add -A 

결과 :

Identity added: {/path/to/file} ({/path/to/file})

편집 : 다음에 전체 재부팅 (일명 에이전트가 중지했다가 다시 시작) 할 때 더 이상 작동하지 않는 것으로 나타났습니다. 더 완벽한 해결책은 @ChrisJF가 위에서 언급 한 것입니다 : ~/.ssh/config파일 만들기 . 내 출력은 다음과 같습니다.

$ cat ~/.ssh/config
Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

IdentityFile필요한만큼 항목을 추가 할 수 있지만 이것이 기본 설정입니다. 이것은 위의 openradar 링크, ATM에 대한 "추세"답변입니다.


나는 이미 암호를 설정했지만 어떤 이유로 든 더 이상 인식하지 못할 것입니다. 그래서 방금 신원 파일을 키 체인에 다시 사용하여 ssh-add -K비밀번호를 묻는 것을 중단했습니다.


LinuxMint / Ubuntu 에서 일함

다음 단계를 수행하십시오

1 단계:

이동 파일 => /.ssh/config

아래 줄을 파일에 저장하십시오.

Host bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile /home/apple/myssh-privatekey
    AddKeysToAgent yes

이 줄을 추가하는 것을 잊지 마십시오 AddKeysToAgent yes

2 단계:

터미널을 열고 ssh-add에 키셋을 추가하십시오

$ ssh-add -k /home/apple/myssh-privatekey

암호를 제공하십시오.


최근에 macOS Mojave로 업그레이드하고 homebrew를 통해 일부 도구를 설치했는데, Apple의 버전을 ssh-add다른 버전으로 바꾸는 것 같습니다 . 내 기본 버전 에는 옵션 ssh-add 이 없습니다-K . 이로 인해 다음과 같은 오류가 발생했습니다.

# ssh-add: illegal option -- K

ssh-add를 실행하면 사용중인 버전을 확인할 수 있습니다 which ssh-add.

(에 저장되었습니다 /usr/local/bin/ssh-add)

이 문제를 해결하려면 Apple 버전의 열쇠를 가리켜 야했습니다 .

/usr/bin/ssh-add -K ~/.ssh/id_rsa

Git / GitHub는 이후 완벽하게 작동했습니다. 자세한 내용은 오류 : ssh-add : 잘못된 옵션-K를 참조하십시오.


SSH가 아닌 HTTPS에서 복제하기 때문에 문제가 발생한 것 같습니다. 나는 다른 모든 해결책을 시도했지만 여전히 문제가 발생했습니다. 이것은 나를 위해 그것을했다.

다음 osxkeychain helper과 같이 사용하십시오 .

  1. 설치되어 있는지 확인하십시오.

    git credential-osxkeychain

  2. 설치되어 있지 않으면 Xcode 명령 줄 도구의 일부로 다운로드하라는 메시지가 표시됩니다.

  3. 설치되어 있다면 Git에게 osxkeychain helper전역 credential.helper설정 을 사용하도록 지시 하십시오 :

    git config --global credential.helper osxkeychain

다음에 HTTPS URL을 복제하면 사용자 이름 / 암호를 묻는 메시지가 표시되고 OSX 키 체인에 대한 액세스 권한이 부여됩니다. 이 작업을 처음 수행 한 후에는 키 체인에 저장해야하며 다시 입력 할 필요가 없습니다.


git에 ssh url을 사용하는 경우 ssh에 대한 암호를 묻는 메시지가 표시되면 사용자 이름을 " git "로, 암호를 시스템의 로그인 암호로 입력하십시오.


IdentitiesOnly를 예로 설정했기 때문에 여전히 암호를 입력해야하는 사람들을위한 답변을 추가하고 싶습니다. 이것은 여러 키와 ID 파일로 인해 git 또는 server의 키가 될 수 있습니다.

키를 생성하여 서버에 복사 한 후 :

ssh-keygen
ssh-copy-id -i ~/.ssh/12gpu_server.pub lerner@192.168.20.160

작동하지 않는 것을 발견했습니다.

그런 다음 ~/.ssh/config파일 을 확인하기 위해 바닥에서 이것을 보았습니다.

Host *
IdentitiesOnly yes

그런 다음 위에 이것을 추가하십시오.

Host 12gpu
HostName 192.168.20.160
User lerner
IdentityFile ~/.ssh/12gpu_server

을 입력하여 로그인하면 ssh 12gpu됩니다.

그런 다음 원하는 이름을 사용하여 여러 개의 ssh 키를 추가 할 수 있으며 위의 4 줄과 같은 설정 만 구성 파일에 추가하면됩니다.

호스트 는 나중에 서버에 연결할 때 입력하려는 이름입니다. 호스트 이름 github.com 같은 서버의 IP 또는 도메인입니다; 사용자 는 github 또는 gitlab의 사용자 이름 또는 git와 같이 서버에 로그인 한 사용자 이름입니다. 그리고 IdentityFile은 당신이 생성 한 키를 저장하는 파일입니다.


일반적으로 비밀번호없이 ssh를 사용하여 서버에 원격으로 연결하는 단계는 다음과 같습니다.

  • rsa 개인 및 공개 키 쌍 생성

    $ ssh-keygen -t rsa -b 4096 -C "your comments"
    
  • 공개 키를 복사하고 원격 서버에 로그인

  • .ssh / authorized_keys에 공개 키 추가

  • 컴퓨터에 여러 개의 ssh 키가있는 경우 ssh-add를 사용하여 키를 추가 할 수 있습니다

    $ ssh-add /path/to/private/key

  • 그런 다음 서버에 ssh를 시도하십시오.

    $ ssh username@your_ip_address

출처 : http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html


이것이 나를 위해 일한 것입니다 : git config --global core.sshCommand " 'C : \ Windows \ System32 \ OpenSSH \ ssh.exe'"


ssh 에이전트를 사용해야합니다. 짧은 답변 : 시도

ssh-add

밀기 전에. 요청시 암호를 입력하십시오.

https://unix.stackexchange.com/a/12201/268450 에서 원래 StackExchange 답변을 확인 하십시오.


sshGithub가 제공하지 않은 원격 URL을 사용하십시오 https.


당신이하는 경우 Windows와 GIT를 사용하여 타사 도구없이 키가됩니다 확보하지 암호 / 암호를 사용하여 :

  1. 환경 변수 HOME 은 사용자 프로파일로 설정해야합니다 (예 : C : \ Users \ Laptop)
  2. C : \ Users \ Laptop \ .ssh \ 폴더로 이동하여 "config"파일을 편집하십시오 (또는 파일을 작성하십시오!) 예 : C : \ Users \ Laptop.ssh ​​\ config (참고 : 끝에.가 없습니다!)
  3. 다음과 같이 git-server 호스트를 "config"파일에 추가하십시오 :

    #Example host entry
    Host myhostname.com
        HostName myhostname.com
        User git
        IdentityFile c:/users/laptop/.ssh/id_rsa.pub
        PasswordAuthentication no
        Port 422
    
  4. 파일을 저장하고 다음과 같이 저장소를 복제하십시오.

    자식 클론 ssh : //myhostname.com/git-server/repos/picalc.git

"config"파일 호스트 항목에 추가 구성 매개 변수를 사용할 수 있습니다. 이들은 로컬 git 설치 폴더에서 찾을 수 있습니다 (예 : " C : \ Program Files \ Git \ etc \ ssh \ ssh_config "). 발췌 :

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
#   Port 22
#   Protocol 2
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h

나에게 같은 문제와 해결책은 다음과 같습니다.

원격의 URL을 https에서 ssh로 변환하려면이 github 문서를 참조하십시오. remote의 URL이 ssh 또는 https인지 확인하려면 git remote -v를 사용하십시오. https에서 ssh로 전환하려면 : git remote set-url origin git@github.com : USERNAME / REPOSITORY.git @jeeYem


Mobaxterme에는 UI 인터페이스가 있습니다

setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]


@ sudo bangbang의 대답은 받아 들여야한다고 생각합니다.

ssh 키를 생성 할 때 비밀번호를 구성하라는 프롬프트가 표시되면 비밀번호 입력을 건너 뛰려면 "Enter"를 누르십시오.

즉, ssh 키를 사용할 때 암호가 필요하지 않으므로 ssh 키를 생성 할 때 암호를 입력하지 말고 'Enter'를 눌러 건너 뛰십시오.

참고 URL : https://stackoverflow.com/questions/21095054/ssh-key-still-asking-for-password-and-passphrase



반응형