새 키를 만들지 않고 SSH 키의 암호를 어떻게 제거합니까?


1033

랩톱에서 새 SSH 키를 만들 때 암호를 설정했습니다. 그러나 지금 알 다시피 , 한 시간에 SSH를 통해 원격 위치에 ( GitSVN ) 커밋하려고 할 때 이것은 매우 고통 스럽 습니다.

내가 생각할 수있는 한 가지 방법은 SSH 키를 삭제하고 새로 만드는 것입니다. 여전히 동일한 키를 유지하면서 암호를 제거하는 방법이 있습니까?


9
엄격한 답변은 실제로 Torsten Marek의 답변이라고 생각합니다. ssh-agent 트릭은 당신이 찾고있는 것일 수도 있지만 다른 질문에 대한 대답입니다.
tardate

1
암호는 개인 SSH 키를 잠금 해제하는 키일뿐만 아니라 암호화 메커니즘의 일부입니다. 하나는 SSH 키이고 다른 하나는 수동으로 입력 한 암호입니다. 두 부품이 모두 올바른 경우에만 즉시 생성 된 복합 키가 유효합니다. 따라서 다른 비밀번호 문구는 다른 SSH 키에 해당합니다 (비밀번호는 "기타 비밀번호 문구"의 특수한 경우가 아닙니다).
Paul

97
이러한 질문을 마무리하는 것은 프로그래밍 언어의 부작용이 '순수'한지 아닌지에 대해 논의해야하는 것과 같습니다. 순수 주의자들은 항상 장난을 치지 만 다른 사람들은 유용한 기능이기 때문에 인생을 더 편하게 만들어주기 때문에 망설이지 않습니다. ssh가 필요합니다. 심지어 엄밀히 프로그래밍과 관련된 것은 아닙니다. 그런 질문을 닫지 마십시오. : |
sjas

답변:


1931

짧은 답변:

$ ssh-keygen -p

그러면 키 파일 위치, 이전 암호 구 및 새 암호 구를 입력하라는 메시지가 표시됩니다 (암호를 남기지 않으려면 비워 둘 수 있음).


프롬프트없이 한 줄로 모든 작업을 수행하려면 다음을 수행하십시오.

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

중요 사항 : 명령을 실행할 때 일반적으로 ~/.bash_history제공된 모든 인수 (이 경우 비밀번호 문구)를 포함하여 일반 텍스트로 파일 (또는 유사)에 기록됩니다 . 따라서 특별한 이유가없는 한 첫 번째 옵션을 사용하는 것이 좋습니다.

nor -f keyfile를 지정 -P하지 않고도 계속 사용할 수 -N있으며 키 파일의 기본값은 ~/.ssh/id_rsa로 설정되어 있으므로 많은 경우에는 필요하지 않습니다.

암호문을 한동안 캐시 할 수있는 ssh-agent 사용을 고려할 수 있습니다. 최신 버전의 gpg-agent는 ssh-agent에서 사용하는 프로토콜도 지원합니다.


464
명확하게 : ssh-keygen -p터미널에서 실행할 수 있습니다 . 그런 다음 키 파일 (기본적으로 올바른 파일로 설정되어 있음 ~/.ssh/id_rsa), 이전 암호 (현재 입력 한 내용) 및 새 암호 (아무 입력하지 않음)를 묻는 메시지가 표시됩니다.
Henrik N

34
전의. :ssh-keygen -p -P oldpassphrase -N "" -f ~/.ssh/id_rsa
Fedir RYKHTIK

24
-1 사용자가 터미널에 비밀번호를 입력하고를 통해 액세스 할 수있게합니다 ~/.bash_history. 다음을 입력하는 것이 좋습니다 :$ cd ~/.ssh && ssh-keygen -f id_dsa -p
betoharres

5
너희들 입력하면 쉘 명령이있는 (흰색) 공간 시작 있음을 유의 명령이 기록되지 않습니다 받는 사람 ~/.bash_hstory즉. `ssh-keygen -p -P oldpassphrase -N ""-f ~ / .ssh / id_rsa`를 사용하면 괜찮습니다 (다른 키로거가없는 한). 당신은 또한 역사에서 기록을 제거 할 수 있습니다 ..
Huge

14
기존 파일을 덮어 쓰고 새 위치를 묻지 않는다는 내용의 줄을 추가하는 것이 좋습니다.
Lars Francke

46

$ ssh-keygen -p 나를 위해 일했다

자식 배쉬를 열었습니다. 붙여 넣기 :$ ssh-keygen -p

기본 위치를 입력하려면 Enter 키를 누르십시오.

오래된 암호를 입력하십시오

새 비밀번호 입력-공백

새 비밀번호 문구 확인-공백

BOOM git push에 대한 암호 입력의 고통이 사라졌습니다.

감사!


Enter $ ssh-keygen -p키를 눌렀을 때 키가 기본 위치 (/Users/yourname/.ssh/id_rsa)가 아닌 /Users/yourname/.ssh/yourkey경우, 프롬프트가 표시 될 때 응답 할 수 있습니다
Chigozie Orunta

37

로그인시 ssh-agent를 시작하는 .bash_profile (또는 이와 동등한)에 다음을 추가 할 수 있습니다.

if [ -f ~/.agent.env ] ; then
    . ~/.agent.env > /dev/null
    if ! kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then
        echo "Stale agent file found. Spawning new agent… "
        eval `ssh-agent | tee ~/.agent.env`
        ssh-add
    fi 
else
    echo "Starting ssh-agent"
    eval `ssh-agent | tee ~/.agent.env`
    ssh-add
fi

일부 Linux 배포판 (Ubuntu, Debian)에서는 다음을 사용할 수 있습니다.

ssh-copy-id -i ~/.ssh/id_dsa.pub username@host

생성 된 ID를 원격 컴퓨터에 복사하여 원격 키 체인에 추가합니다.

자세한 내용은 여기여기를 참조 하십시오 .


7
최신 배포가 즉시 ssh-agent를 시작하지 않습니까?
Troels Arvin

일부 Linux 배포판 (Ubuntu, Debian)에서는 다음을 사용할 수 있습니다. ssh-copy-id -i ~ / .ssh / id_dsa.pub username @ host 물론 그런 식으로 액세스한다고 가정합니다. 그리고 2008 년부터 id_rsa.pub를 참조하도록 편집해야 할 수도 있습니다 (예, 편집 할 수는 있지만 다른 사람들의 작업에는 편안하지 않습니다-esp는 이런 식으로 진행됩니다).
Pryftan

@TroelsArvin 예. 그러나 otoh는 사망 한 경우가 있습니다 (X11에 문제가 있고 다시 시작 해야하는 경우가 아니라면 그와 같은 상황이 마음에 들지 않지만). 이 경우 '재 작성'해야합니다.
Pryftan

8

암호를 변경하거나 제거하기 위해 종종 pand f플래그 만 전달하는 것이 가장 간단한 것을 발견 한 다음 시스템에서 암호를 입력하라는 메시지를 표시합니다.

ssh-keygen -p -f <name-of-private-key>

예를 들어 :

ssh-keygen -p -f id_rsa

암호를 제거하려면 빈 암호를 입력하십시오.

비밀번호를 제거하거나 변경하기위한 샘플 실행은 다음과 같습니다.

ssh-keygen -p -f id_rsa
Enter old passphrase: 
Key has comment 'bcuser@pl1909'
Enter new passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved with the new passphrase.

암호가없는 키에 암호를 추가하면 다음과 같이 실행됩니다.

ssh-keygen -p -f id_rsa
Key has comment 'charlie@elf-path'
Enter new passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved with the new passphrase.

3

Windows에서 PuttyGen을 사용하여 개인 키 파일을로드하고 암호를 제거한 다음 기존 개인 키 파일을 겹쳐 쓸 수 있습니다.


2

당신은 투명 그것의 사용합니다 키 체인에서 개인 SSH 키에 대한 암호를 저장할 수 있습니다. 로그인하면 루트 사용자가 로그 아웃 할 때 사용할 수 없습니다. 파일을 가진 사람은 누구나 암호를 사용할 수 있으므로 암호를 제거하는 것은 좋지 않습니다.

ssh-keygen -K

이것을 추가하십시오 ~/.ssh/config

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