[Linux/Ubuntu] apt-key 명령어 사용법

최근 외부망에 연결되지 않은 우분투에 호튼웍스 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 등록이 가능하다.

Designed by JB FACTORY