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.
비밀번호를 입력 할 때 먼저 실패해야합니까? 그런 다음 암호를 입력하면 통과합니다.
당신이 작업하는 경우 HTTPs
URL을 항상 사용자 이름 / 암호를 요청할 것입니다.
SSH
리모컨을 복제 / 설정할 때 올바르게 사용하는 경우 그런 다음 비밀번호를 기억할 ssh 에이전트가 있는지 확인하십시오. 이렇게하면 터미널 세션에서 암호를 한 번만 입력 할 수 있습니다.
여전히 성가신 경우 암호없이 ssh 키를 설정하십시오.
키 체인없이 아이덴티티 추가
암호문을 키 체인에 저장하고 싶지 않지만 암호문을 반복해서 입력하지 않아도되는 경우가 있습니다.
다음과 같이 할 수 있습니다.
ssh-add ~/.ssh/id_rsa
암호문을 입력하고 입력 한 후 다시 시작할 때까지 다시 묻지 않습니다.
키 체인을 사용하여 아이디 추가
@dennis가 주석에서 지적했듯이 암호를 키 체인에 저장하여 재시작을 통해 암호문을 유지하려면 다음과 같이 ID를 추가 할 때 -K
옵션 ( -k
Ubuntu의 경우)을 사용할 수 있습니다 .
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과 동일한 동작을 유지하기 위해 다음을 수행했습니다.
ssh-add -K ~/.ssh/id_rsa
참고 : id_rsa 키가있는 경로를 변경하십시오.ssh-add -A
다음
~/.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_rsa
Enter 키를 누릅니다
현재 암호 문구를 입력하라는 메시지가 표시됩니다.
그런 다음 새 암호 문구를 입력하라는 메시지가 표시되면 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
과 같이 사용하십시오 .
설치되어 있는지 확인하십시오.
git credential-osxkeychain
설치되어 있지 않으면 Xcode 명령 줄 도구의 일부로 다운로드하라는 메시지가 표시됩니다.
설치되어 있다면 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 답변을 확인 하십시오.
ssh
Github가 제공하지 않은 원격 URL을 사용하십시오 https
.
당신이하는 경우 Windows와 GIT를 사용하여 타사 도구없이 키가됩니다 확보하지 암호 / 암호를 사용하여 :
- 환경 변수 HOME 은 사용자 프로파일로 설정해야합니다 (예 : C : \ Users \ Laptop)
- C : \ Users \ Laptop \ .ssh \ 폴더로 이동하여 "config"파일을 편집하십시오 (또는 파일을 작성하십시오!) 예 : C : \ Users \ Laptop.ssh \ config (참고 : 끝에.가 없습니다!)
다음과 같이 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
파일을 저장하고 다음과 같이 저장소를 복제하십시오.
자식 클론 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
'Programing' 카테고리의 다른 글
Java를 사용하여 인터넷에서 파일을 다운로드하고 저장하는 방법은 무엇입니까? (0) | 2020.02.20 |
---|---|
Apple의 Swift 언어에서 난수를 어떻게 생성합니까? (0) | 2020.02.20 |
Git 저장소에서 특정 작성자가 변경 한 총 줄 수를 계산하는 방법은 무엇입니까? (0) | 2020.02.20 |
Google Finance API 대신 사용 (0) | 2020.02.20 |
디자인 패턴 : 싱글 톤은 언제 사용해야합니까? (0) | 2020.02.20 |