답변:
키를 제거 ssh-add -d/-D
하지 않은 경우 적어도 두 가지 버그 보고서가 있습니다 .
ssh-add -D
에서 SSH 키를 제거하지 않습니다gnome-keyring-daemon
"ssh-add -D
모든 ID를 삭제해도 작동하지 않습니다. 또한 모든 ID가 자동으로 추가되는 이유는 무엇입니까? "정확한 문제는 다음과 같습니다.
ssh-add -d/-D
그놈 키링에서 수동으로 추가 한 키만 삭제합니다 .
자동으로 추가 된 키를 삭제할 방법이 없습니다.
이것은 원래 버그이며 여전히 존재합니다.예를 들어, 두 개의 서로 다른 GitHub 계정과 연결된 두 개의 서로 다른 자동로드 된 ssh ID (예 : 직장 및 가정)가있는 경우 서로 전환 할 수있는 방법 이 없습니다 . GitHub는 첫 번째 항목과 일치하므로 GitHub의 '홈'사용자로 표시되어 작업중인 프로젝트를 업로드 할 방법이 없습니다.
허용
ssh-add -d
에 적용 할 자동으로로드 키 (그리고ssh-add -t X
대부분의 사용자가 기대하는 동작을 복원 할 자동으로로드 된 키의 수명을 변경).
보다 정확하게 문제에 대해 :
범인은
gpg-keyring-daemon
:
- 그것은 ssh-agent의 정상적인 작동을 방해합니다. 대부분 암호화 된 ssh 키의 암호를 입력 할 수있는 예쁜 상자가 나타납니다.
- 그리고 그것은 당신의
.ssh
디렉토리를 밟아서 발견 한 키를 자동으로 에이전트에 추가합니다.- 그리고 그 키를 삭제할 수 없습니다.
우리는 이것을 어떻게 미워합니까? 인생은 너무 짧습니다.
최신 ssh 클라이언트는 호스트에 연결할 때 ssh-agent의 모든 키를 자동으로 시도하기 때문에 실패가 발생합니다.
너무 많으면 서버가 연결을 거부합니다.
그리고 gnome-keyring-daemon은 ssh-agent가 갖고 싶은 키의 수를 스스로 결정하고 자동로드했으며,이를 삭제하지 않도록하기 위해 건배했습니다.
이 버그는 최근 2 일 전 (2014 년 8 월 21 일) 우분투 14.04.4에서 확인되었습니다.
가능한 해결 방법 :
- 수행
ssh-add -D
모든 삭제 수동으로 추가 키를. 또한 자동으로 추가 된 키gnome-keyring
를 잠그지 만을 시도 할 때 잠금을 해제하라는 메시지가 표시 되므로 많이 사용되지 않습니다git push
.- 이동 사용자에
~/.ssh
폴더와 백업라는 별도의 폴더에 동일시 할 제외한 모든 키 파일을 이동합니다. 필요한 경우 해마를 열고 키를 삭제할 수도 있습니다.- 이제
git push
문제없이 할 수 있어야합니다 .
다른 해결 방법 :
당신이 정말로하고 싶은 것은
gpg-keyring-daemon
완전히 끄는 것 입니다.
로 이동System --> Preferences --> Startup Applications
하여 "SSH Key Agent (Gnome Keyring SSH Agent)
"상자를 선택 해제하십시오 . 아래로 스크롤하여 찾아야합니다.당신은 여전히를 얻을 수 있습니다
ssh-agent
자동으로 적재 더 키, 당신은 추가 할 SSH-추가를 실행하지 않으며, 당신이 키를 삭제하려는 경우, 당신은 할 수 있습니다 만 지금은 올바로 수행 동작합니다. 상상 해봐.
이 의견은 실제로 다음을 제안합니다.
해결책은
gnome-keyring-manager
시작 하지 않는 것입니다. 프로그램 파일의 실행 권한을 제거하여 마침내 달성하기가 이상해졌습니다.
라이언 루 (Ryan Lue) 는 다음 과 같이 댓글에 흥미로운 또 다른 사례 를 추가합니다 .
이것이 누군가에게 도움이되는 경우 : 심지어 파일
id_rsa
과id_rsa.pub
파일을 모두 삭제하려고 시도했지만 키가 여전히 나타났습니다.턴 아웃
gpg-agent
A의 그들을 캐싱 된~/.gnupg/sshcontrol
파일 ; 거기에서 수동으로 삭제해야했습니다.
ssh-agent
와 ssh-add
선택한 답변 에 대한 정보는 무엇 입니까? 원래 포스터는 그가 원한다고 말했다 remove the old SSH key directly on the server and upload a new one
. ~/.ssh/authorized_keys
원격 호스트 에서 편집하고 싶은 것 같습니다 .
git clone
하면 Ubuntu 상자의 구성 파일에있는 버전 대신 체인의 첫 번째 키를 사용하고있었습니다. 나쁜 열쇠는 자동으로 빨려 들어가 데비안 상자로 전달되었습니다.
id_rsa
과 id_rsa.pub
파일을 모두 삭제하려고 시도했지만 키가 여전히 나타났습니다. gpg-agent가 ~/.gnupg/sshcontrol
파일 에서 캐싱하는 것으로 나타났습니다 . 거기에서 수동으로 삭제해야했습니다.
내가 오해하지 않는 한 .ssh
로컬 컴퓨터의 개인 키가 포함 된 디렉토리 를 잃어 버렸 으므로 서버에 있었고 키 기반 로그인을 허용 한 공개 키를 제거하려고합니다. 이 경우 .ssh/authorized_keys
서버의 홈 디렉토리에있는 파일에 저장됩니다 . 텍스트 편집기를 사용하여이 파일을 편집하고 관련 행을 식별 할 수있는 경우 해당 행을 삭제할 수 있습니다 (유일한 항목 인 경우에도 더 쉽습니다). 키가 서버에 대한 유일한 액세스 방법이 아니기 때문에 파일을 로그인하고 편집하는 다른 방법이 있기를 바랍니다. authorised_keys
파일에 새 공개 키를 수동으로 추가하거나을 사용할 수 있습니다 ssh-copy-id
. 어느 쪽이든 서버의 계정에 비밀번호 인증을 설정하거나 서버의 authorized_keys
파일에 액세스하려면 다른 ID 또는 액세스 방법 이 필요합니다.
ssh-add
로컬로 ID 관리를 처리하는 ssh 에이전트에 ID를 추가하고 "에이전트에 대한 연결은 SSH 원격 로그인을 통해 전달되므로 사용자는 네트워크의 어느 곳에서든 보안 방식으로 ID가 제공 한 권한을 사용할 수 있습니다." (man page), 그래서 나는 이것이 당신이 원하는 것이라고 생각하지 않습니다. 내가 아는 한 ssh 로그인을 통해 해당 서버에 액세스하지 않으면 공개 키를 서버에 가져올 수있는 방법이 없습니다.
이 버그가 여전히 우분투 19.04에 있음을 확인할 수 있습니다. @VonC가 제안한 해결 방법은 내 버전에 대해 요약하여 완벽하게 작동했습니다.
내가 다음에 한 일은 시도했다 ssh-add -D
다시하고 다시 부팅 한 후 ssh-add -l
나에게 말했다 에이전트는 어떤 정체성이 없습니다. 나는 여전히 ssh-agent
데몬을 실행하고 있음을 확인했다 ps aux | grep agent
. 그래서 GitHub ( ssh-add ~/.ssh/id_ecdsa
)에서 가장 자주 사용하는 키를 추가했으며 모두 좋습니다!
이제 가장 자주 사용되는 리포지토리를 사용하여 정상적인 작업을 수행 할 수 있으며 RSA 키를 사용하는 다른 리포지토리에 액세스해야하는 경우에는 터미널 하나를 전용으로 사용합니다 export GIT_SSH_COMMAND="ssh -i /home/me/.ssh/id_rsa.pub"
. 해결되었습니다! 버그와 해결책을 지적 해 준 크레딧은 @VonC로갑니다.
시스템에서 .ssh 키 확인
그렇지 않은 경우
터미널에서 과거
기존 .ssh 키 제거
새로 만들기
새 .ssh 키 생성-> ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
공개 키는 "/Users/administrator/.ssh/id_ed25519.pub" 에 저장되었습니다 .
ssh-add -d
?