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


1033

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

내가 생각할 수있는 한 가지 방법은 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.