gpg와 SSH를 함께 사용하는 방법? [복제]


11

중복 가능성 :
GPG와 SSH 키를 서로 교환 할 수 있습니까?

gpg와 SSH를 함께 사용하는 방법?

1) gpg를 사용하여 텍스트 파일을 암호화 및 암호 해독하고 2) SSH 키를 생성하고 사용하여 암호없이 원격 서버에 액세스하는 기본 절차를 알고 있습니다.

두 가지를 통합 할 수 있는지 궁금합니다. 이 둘은 관련이 없으며 일상적인 용도로 분리되어야합니까?

답변:


7

이 주제에 대해 조사 중이며 힌트를 줄 수는 있지만 아직 작동시킬 방법을 찾지 못했습니다.

원숭이 권

Monkeysphere 는 매우 흥미로운 프로젝트로 보이지만 MacPorts로 작은 여유 디스크 공간을 막지 않고 Mac OS X에서 컴파일 할 수 없었습니다.

gpgkey2ssh 사용

시도해 볼 것을 제안하는 첫 번째 방법은 다음과 같이 키 ID (예 : BFB2E5E3)에서 호환 인증 된 항목을 생성하는 것입니다.

gpgkey2ssh BFB2E5E3 | tee -a ~/.ssh/authorized_keys

테스트 목적으로 ssh 서버를 실행 한 이후로 로컬 호스트에 추가했지만 물론 대상 호스트에 추가해야합니다 ~/.ssh/authorized_keys. 다음으로 인증 중에이 키의 개인 부분을 사용하도록 SSH에 지시해야하지만 ASCII 키 버전의 키 쌍을 내보내는 것은 작동하지 않습니다.

gpg --armor --export-secret-key BFB2E5E3! |tee ~/.ssh/id_rsa
gpg --armor --export BFB2E5E3! | tee ~/.ssh/id_rsa.pub
chmod 400 ~/.ssh/id_rsa
ssh localhost

gpg-agent 사용

gpg-agent--enable-ssh-support그것은 잘 알려진 드롭 인 대체로 사용할 수 있는 옵션 이 있습니다 ssh-agent. 이 방법으로 ssh-add시작한 후 GPG 키 를 통해 추가하려는 일부 사람들에 대해 읽었습니다 gpg-agent.

gpg-agent --enable-ssh-support --daemon
gpg --armor --export-secret-key BFB2E5E3! | tee ~/.gnupg/exported-keys/BFB2E5E3_sec.asc
ssh-add ~/.gnupg/exported-keys/BFB2E5E3_sec.asc

그러나 이것이 효과가 있다고 생각하지 않습니다. GPG 에이전트 맨은 말합니다 :

에이전트를 통해 사용될 SSH 키는 ssh-add 유틸리티를 통해 gpg-agent에 처음 추가해야합니다. 키가 추가되면 ssh-add는 제공된 키 파일의 비밀번호를 요청하고 보호되지 않은 키 자료를 에이전트에 보냅니다. 이로 인해 gpg-agent는 새로 수신 된 키를 암호화하고 gpg-agent 특정 디렉토리에 저장하는 데 사용되는 암호를 요구합니다.

따라서 gpg-agentGPG 암호화로 SSH 키를 보호하기위한 추가 수단으로 사용해야 하는 것 같습니다 .

GPG 키를 OpenSSH로 변환

블로그의 Jérôme Pouiller 는 Gpgsm 유틸리티가 PCSC12에서 키와 인증서를 내보낼 수 있다고 기록합니다. 그런 다음 OpenSSH에서 사용할 수 있습니다.

gpgsm -o secret-gpg-key.p12 --export-secret-key-p12 0xXXXXXXXX
openssl pkcs12 -in secret-gpg-key.p12 -nocerts -out gpg-key.pem
chmod 600 gpg-key.pem
cp gpg-key.pem ~/.ssh/id_rsa
ssh-keygen -y -f gpg-key.pem > ~/.ssh/id_rsa.pub

그러나 gpgsmgpg 키 페어를 수락 하는 방법을 찾지 못했습니다 .

시도해 볼 수있는 다른 것들

SSH에는 -IPKCS # 11 공유 라이브러리 ssh가 사용자의 개인 RSA 키를 제공하는 PKCS # 11 토큰과 통신하는 데 사용해야 하는 옵션 이 있습니다. ssh-keygenRFC4716 / SSH2 공개 또는 개인 키, PEM PKCS8 공개 키 및 PEM 공개 키를 사용하여 -i-m옵션을 사용하여 OpenSSH 호환 개인 (또는 공개) 키를 생성 할 수 있습니다.

여전히 나는 그것을 모두 모을 방법을 찾을 수 없습니다.


1
나중에 참조 할 수 있도록 본질적으로 동일한 두 개의 질문을 찾으면 flag동일한 답변을 두 번 게시하는 대신 질문 아래의 링크를 사용하여 중복으로 표시 할 수 있습니다 . 자세한 답변 감사합니다!
nhinkle

이 기능에 대해 잘 모르겠습니다. 감사합니다
Claudio Floreani

2
무엇을하려고하는지 잘 모르겠습니다 gpg --armor --export-secret-key BFB2E5E3! |tee ~/.ssh/id_rsa. tee출력을 볼 수 있도록 그냥 사용 하고 있습니까? 이 명령의 출력은 다음에 사용하기에 적합하지 않습니다 ssh-add. 생성 된 id_rsa파일은 ssh-agent또는에 로드 할 수 없으며 gpg-agent직접 사용할 수도 없습니다 ssh.
larsks


2

기술적으로는 PGP 키를 SSH 인증에 사용할 수 있습니다. 어떤 사람들은 "PGP 키는"더 많은입니다 전화 인증서 일반 RSA, ECDSA 또는 인증서의 메타 데이터와 함께 다른 키 쌍 (기본 키와 하위 키를) 포함. 실제로 "인증"사용 플래그도 정의되어 있습니다.

그러나 여러 용도로 동일한 키를 사용하지 않는 것이 좋습니다. 그러나 이는 인증 전용 하위 키를 PGP 인증서에 쉽게 추가 할 수 있으므로 쉽게 해결할 수 있습니다 gpg --expert --edit-key. 하나의 서명 / 인증 기본 키, 암호화 하위 키 및 인증 하위 키가 있습니다.

실제로 여러 아이디어를 시도하기에는 너무 게으르지 만 PGP 키를 사용하여 직접 인증 하는 방법 을 알 수 없었습니다 . Monkeysphere 제품군에는 GPG 인증 하위 키를 ssh-agent에 추가 할 수있는 도구가 있습니다. 그러나 이것에 대한 몇 가지 오래된 슈퍼 유저 게시물이 있어야합니다.


정보 주셔서 감사합니다. 그것들은 유용하지만 내 질문에 대답하기에는 충분하지 않습니다. 여전히 PGP 인증서와 SSH 키를 통합하는 방법을 모르겠습니다.
qazwsx

Monkeysphere 문서에서; monkeysphere subkey-to-ssh-agent에이전트에 키를로드합니다.
user1686
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.