나는 사용하고 싶다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
복호화 비밀번호를 입력한 후 dbclient
GPG 암호화 개인키를 이용해 로그인하세요. 그래서 이 부분은 잘 작동합니다.
여기서 가장 큰 문제는 .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에서)를 생성한 다음 거기에서 암호화하는 것 외에는 선택의 여지가 없는 것 같습니다 .