린아저씨의 잡학사전

최근 외부망에 연결되지 않은 우분투에 호튼웍스 HDP Local Repository를 구축하면서

패키지 리스트에 apt 패키지를 등록하는 작업을 하였습니다.

 

CentOS에는 Local Repository 생성하는 작업을 기존에 여러번 진행해 보았기 때문에 apt-key를 등록하는 방법까지 쉽게 했었지만, 이번에 우분투에 Local Repository를 등록하면 한참을 헤메었습니다.

 

그래서 이번 기회에 apt-key를 이용해서 gpg key를 등록하는 방법에 대해 정리하고자 합니다.

 

apt key가 제대로 등록되어 있지 않을 경우에는 apt update 가 정상적으로 실행되지 않습니다.

 

Command : apt-key

 

Usage: apt-key [--keyring file] [command] [arguments]

Manage apt's list of trusted keys

  apt-key add <file>          - add the key contained in <file> ('-' for stdin)
  apt-key del <keyid>         - remove the key <keyid>
  apt-key export <keyid>      - output the key <keyid>
  apt-key exportall           - output all trusted keys
  apt-key update              - update keys using the keyring package
  apt-key net-update          - update keys using the network
  apt-key list                - list keys
  apt-key finger              - list fingerprints
  apt-key adv                 - pass advanced options to gpg (download key)

사용 예시

 

1. apt key list 확인

$ apt-key list

/etc/apt/trusted.gpg
--------------------
pub   rsa4096 2012-06-22 [SC]
      DF52 ED4F 7A3A 5882 C099  4C66 B973 3A7A 0751 3CAD
uid           [ unknown] Jenkins (HDP Builds) <jenkin@hortonworks.com>

/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-archive.gpg
------------------------------------------------------
pub   rsa4096 2012-05-11 [SC]
      790B C727 7327 256C 4C18  1F93 614F E6AC C0B2 1F37
uid           [ unknown] Ubuntu Archive Automatic Signing Key (2012) <ftpmaster@ubuntu.com>

/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg
------------------------------------------------------
pub   rsa4096 2012-05-11 [SC]
      8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1222
uid           [ unknown] Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>

apt-key list 명령어를 통해 확인했을 때, 각 apt keyid는 빨간색으로 표시한 부분이 된다.

/etc/apt/trusted.gpg 
-------------------- 
pub     rsa4096 2012-06-22 [SC] 
          DF52 ED4F 7A3A 5882 C099  4C66 B973 3A7A 0751 3CAD 
uid              [ unknown] Jenkins (HDP Builds) <jenkin@hortonworks.com>

 

2. apt key 추출하기

$ apt-key export B9733A7A07513CAD

-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBE/kz5QBEACz65O0pyfgvYrPxXNBKtMaP5HWX1X6rIReg3K24Awn2ULxvFNb
7/zepCopt7IbEwqfMSRI3DbdhA1kNbQzRBgdsfsdfsdfsdfs7VPit6m6Scwfyyaa
dCIBaZWF8jcRsFjHUF4kgK4uZ3gx27bns8HDCpXUKkuZ08n0ggDiZ7Jx5Lnnfk6i
4iHWSXPyS6x0XPVysdfsdfsdfOKN/8KJosMQEzEjPx7/y4S4MycshARkq8g6gK+E
+sHtwfFqJDxYQmh7e77Fr3tLquE86VIVdPjjas2z+sttm+TPlfyoAAGKBhSh6OKX
RRhNXngMJcSMYQ5UIFDzc2rOapTSd+tNJZCD64mbKDSr3Bt9uZ+dasdtEUEdkp2v
3byuR3E6mEITxEbImtPoVcXCAECqC7SKecT8BTDgt7ZcdOLsnnH5lTadSkYm+aAq
XUEqVBONz1231231231sfdsqKuZ1vFgehHRu1lxGpR30cVZLSEXHdIKWB3amt+BlH
7aF/lGpjmxwmFESxFnDpXG4DrxuIOjicnAWD0nBqVActPadsf0WCSjh11lodOr/2
9lbKCgXlh6Ynb84ZCy5T8Crx+j3h5J3UyoFj4gQP/3AHbC3Ig3Oq6udsdfsZ8LEHW
jOpA2+eY7FbB9FOvK0jNkmvDJ2f8mVBGaBI4OL+jkKe7Qcn/UwLA8foObwARAQAB
tC1KZW5raW5zIChIRFAgQnVpbGRzKSA8amVua2sdfdJvftQidoRKVFUY21JPgTgw
xklPYb8mBqiibNFn3L/hYvlvm+LMhR3LLS3OI5wh5Rr7jWIdsf99R2v1f44IwTJ9
uChEI2rBCsdfsfK1231231231fsdfdsfsdflXmBfsdfsdfsdfsdf7IRWRKU3+Ll
FterDA76O7EDPrBKJ9gH6S8sAAE8RiFfNxj4TuYWvzoX9bMe0TLoAZcltAbRuG87
VPzDLVP1lgkBL/BsIywDG423dSZLFm1KF4ptVMGhM+wbEVPsno1AjkOzwmVzVLjZ
5iZJNVf/ruxY0iHhfYnyxz8xCqMQVv9BJ0XOuzk2xU2hFXD9rKg6UCuU/S25X0f4
WdfF0yTKCqONNpTRqL+/hPsdfsdfsdfsdfsdfsdfsdaCaQEfBnC9qMJaZprK0ccz
=I2D5
-----END PGP PUBLIC KEY BLOCK-----

apt-key export <keyid> 명령어를 통해서 apt-key의 pgp public key 를 추출할 수 있다.

이렇게 추출하면 인터넷이 되지 않는 환경에서 이 public key를 .key 파일로 만들어서 apt-key를 등록할 수 있다.

 

3. apt key 추가하기

$ sudo apt-key add example.key
OK

앞서 추출한 Public key를 가지고 .key 파일을 만든 뒤 add 옵션을 사용해서 apt key 등록이 가능하다.

공유하기

facebook twitter kakaoTalk kakaostory naver band