기계가 읽을 수있는 형식으로 apt의 주요 ID 및 지문 가져 오기


11

puppetlabs-apt의 문제를 패치하여 키 지문을 식별자로 사용하여 특정 키가 40 자리 키 지문으로 표시되도록합니다.

키가 있는지 확인하는 데 어려움이 있으며 다음을 출력하는 명령이 필요합니다.

  • 키의 8 자리 ID입니다.
  • 키의 16 자리 ID입니다.
  • 키의 40 자리 ID입니다.

apt-key이러한 값을 한 줄에 하나씩 출력하는 데 사용할 수 있는 명령이 있습니까? 따라서 출력을 구문 분석하고 키가 있는지 확인할 수 있습니까?

답변:


21

apt-key adv 옵션을 GnuPG에 직접 전달할 수 있습니다.

따라서 구문 분석 가능한 출력을 얻기 위해 다음과 같은 작업을 수행 할 수 있습니다.

# apt-key adv --list-public-keys --with-fingerprint --with-colons 
⋮
fpr:::::::::126C0D24BD8A2942CC7DF8AC7638D0442B90D010:
pub:-:4096:1:9D6D8F6BC857C906:2014-11-21:2022-11-19::-:Debian Security Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>::scSC:
fpr:::::::::D21169141CECD440F2EB8DDA9D6D8F6BC857C906:
⋮

지문에만 관심이 있기 때문에 (8 자리 및 16 자리 ID는 지문의 끝일뿐 | grep ^fpr입니다.) 관심있는 줄을주는 것 같습니다.


그렇다면 fingerprint[-8:](Python)을 사용하면 8 자리 ID를 fingerpint[-16:]얻을 수 있고 16 자리 ID를 얻을 수 있습니까? 암호 적으로 파생 된 짧은 해시라고 생각하는 것이 바보입니다.
Naftuli Kay

2
@NaftuliTzviKay 지문은 암호로 파생 된 해시입니다. 다시 해싱하는 것보다 잘라내는 것에는 보안상의 이점이 없습니다. 또한 8 자리 및 16 자리는 너무 짧아 안전하지 않습니다. 무차별 대입으로 중복 키를 생성 할 수 있습니다. 전체 해시 만 합리적으로 안전합니다. 파이썬을 모르는 것처럼 파이썬 코드가 예상대로 작동하는지 언급 할 수는 없지만 ... 그렇습니다. 마지막 8 자리 또는 16 진수 숫자입니다.
derobert
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.