dropbear ssh-access의 개인 키를 암호화하세요

dropbear ssh-access의 개인 키를 암호화하세요

나는 사용하고 싶다dropbear대안으로 최소한의 ssh-server 및 -client가 있습니다. dropbear개인-공개 키를 사용하여 SSH 액세스를 허용하지만이러한 키는 사용된 키와 다르므로 - 명령을 openssh사용하여 dropbearconvert변환 해야 합니다.(이것은 쉽습니다).

내가 겪고 있는 문제는dropbear암호화된 개인 키를 기본적으로 지원하지 않습니다.. 그러나 원칙적으로 나는 내 노트북에 암호화되지 않은 SSH 키를 남겨두는 것을 피하고 싶습니다.

그래서 내 질문은 다음과 같습니다. 이 문제를 우회하는 방법에 대한 좋은 아이디어가 있고 방법(스크립트?)이 있는 사람이 있습니까?

  • dropbear에 사용하는 키를 해독하고(예: 를 사용하여 gnupg) 메모리에 로드합니다.
  • dbclient-binary( dropbear-client-application) 에 전달하고
  • SSH 연결 시작

ssh또한 dropbear에 대한 -config 옵션(특히 -config 옵션 )에 대한 대안이 있는지 알고 싶습니다 Host. 따라서 IP 등을 지정할 수 있는 dropbear에 대한 호스트별 구성 파일을 생성할 수 있는지 알고 싶습니다. 주소, 포트 및 기타 세부 정보).

답변1

dbclient명명된 파이프나 FIFO에서 개인 키를 읽는 것은 완벽해 보입니다 .

따라서 bash의 프로세스 교체를 통해 다음과 같이 작성할 수 있습니다.

dbclient -i <(cat .ssh/id_dropbear) user@server

따라서 암호화된 GPG가 있는 경우 다음 .ssh/id_dropbear.gpg과 같이 작성할 수 있습니다.

dbclient -i <(gpg --decrypt .ssh/id_dropbear.gpg) user@server

복호화 비밀번호를 입력한 후 dbclientGPG 암호화 개인키를 이용해 로그인하세요. 그래서 이 부분은 잘 작동합니다.

여기서 가장 큰 문제는 .ssh/id_dropbear이전에 암호화되지 않은 상태로 저장한 경우 포렌식을 통해 복구할 수 있다는 것입니다. 에서 키를 동적으로 암호화하려면 dropbearconvert동일한 원칙을 적용할 수 있습니다.

$ dropbearconvert openssh dropbear \
    .ssh/id_openssh >(gpg --symmetric --output .ssh/id_dropbear.gpg)
Key is a ssh-rsa key
Wrote key to '/dev/fd/63'

dropbearconvert그러나 OpenSSH의 암호화된 개인 키에 대해 매우 제한된 지원만 제공하기 때문에 실제로는 많이 사용되지 않는 것 같습니다 . 이 예에서는 이해하기 위해 특별히 OpenSSH 키를 생성해야 했습니다 dropbearconvert.

불행히도 이 트릭은 dropbearkey명령에서는 전혀 작동하지 않는 것 같습니다. 이 명령은 어떤 이유로 파이프를 완전히 우회하여 임시 파일을 작성하고 이름을 바꾸도록 요구합니다.

tmpfs따라서 먼저 개인 키 (예: Live CD에서 /dev/shm또는 Live CD에서)를 생성한 다음 거기에서 암호화하는 것 외에는 선택의 여지가 없는 것 같습니다 .

관련 정보