Kali2026. 06. 21. 오후 08:25

칼리 리눅스 apt update 오류 해결 - 저장소 서명 키(GPG) 만료 문제

Profile
조회 21
0

이 글은 칼리 리눅스를 설치한 뒤 apt update 가 서명 오류로 실패하는 경우의 해결법입니다.

한글 깨짐·한글 입력 설정을 마쳤다면, 보통 그다음 단계에서 이 문제를 만나게 됩니다.

아래 명령은 모두 root 계정 기준( root@kali:~# )으로 작성했습니다.

기본 kali 계정을 쓰고 있다면 sudo -i 로 먼저 root로 전환한 뒤 따라 하시면 됩니다. (전환하지 않고 각 명령 앞에 sudo 를 붙여도 동일합니다.)

들어가기 전에 - root 비밀번호가 없어 전환이 안 된다면

최근 칼리(2020.1 버전 이후)는 보안을 위해 root 계정에 비밀번호가 설정되어 있지 않습니다.

설치할 때 만든 일반 계정(보통 kali )을 쓰고, 관리자 권한이 필요할 때 sudo 를 붙이는 방식이죠.

그래서 옛날처럼 toor 같은 비밀번호로 root 로그인을 시도하면 실패합니다.

root로 전환하거나 로그인하려면, 먼저 일반 계정에서 root 비밀번호를 설정해야 합니다.

sudo passwd root

현재 사용 중인 계정( kali )의 비밀번호를 입력한 뒤, 새로 쓸 root 비밀번호를 두 번 입력하면 됩니다.

(비밀번호를 입력할 때 화면에 아무 글자도 보이지 않지만, 정상적으로 입력되고 있는 것이니 그대로 치고 엔터를 누르면 됩니다.)

kali@kali:~$ sudo passwd root
[sudo] password for kali:       # 현재 kali 계정 비밀번호 입력
New password:                   # 새 root 비밀번호 입력
Retype new password:            # 한 번 더 입력
passwd: password updated successfully

이제 터미널에서 sudo -i 또는 su - 로 root 전환을 할 수 있습니다.

참고: 비밀번호만 설정하면 터미널 전환( su, sudo -i ) 은 되지만, GUI 로그인 화면이나 SSH로의 직접 root 로그인은 보안상 여전히 막혀 있습니다.

GUI 화면에서 아예 root로 로그인하고 싶다면 sudo apt install -y kali-root-login 패키지를 설치한 뒤 재부팅해야 합니다.

다만 일상적인 작업에서는 root로 직접 로그인하기보다, 일반 계정을 쓰다가 필요할 때만 sudo나 sudo -i 를 쓰는 것이 안전합니다.


어떤 문제인가요?

칼리 리눅스를 설치하고 가장 먼저 하는 일이 apt update 입니다. 패키지 목록을 최신으로 맞추는 명령인데,

어느 날 갑자기 아래처럼 서명을 확인할 수 없다는 오류와 함께 업데이트가 막히는 경우가 있습니다.

root@kali:~# apt update
Get:1 https://http.kali.org/kali kali-rolling InRelease [41.5 kB]
Err:1 https://http.kali.org/kali kali-rolling InRelease
  Sub-process /usr/bin/sqv returned an error code (1), error message is: Missing key ..., which is needed to verify signature.
Warning: An error occurred during the signature verification.
Warning: Failed to fetch https://http.kali.org/kali/dists/kali-rolling/InRelease ...
Warning: Some index files failed to download. They have been ignored, or old ones used instead.

처음 보면 당황스럽지만, 사실 고장이 아니라 예정된 동작입니다. 원인을 알면 해결도 간단합니다.


왜 이런 일이 생기나요?

칼리의 저장소(repository)는 패키지가 위변조되지 않았음을 보장하기 위해 GPG 키로 서명되어 있습니다.

apt는 패키지를 받을 때마다 이 서명이 올바른지 확인하고, 서명이 맞아야만 설치를 진행합니다. 일종의 "이 패키지는 칼리 공식이 맞다"는 인감도장인 셈입니다.

그런데 이 서명 키에는 유효기간이 존재합니다. 칼리 팀은 2~3년마다 저장소 서명에 쓰는 GPG 키의 수명을 연장하거나 새 키로 교체합니다.

문제는 여기서 발생합니다. 키가 바뀌었는데 내 컴퓨터에는 옛날 키만 들어 있으면, apt는 "이 서명을 확인할 키가 없다"며 업데이트를 거부합니다.

위 오류의 Missing key ...가 정확히 그 뜻입니다.  즉, 이 오류는 보통 다음 경우에 나타납니다.

  • 칼리를 설치한 지 오래되어 kali-archive-keyring 패키지가 옛날 버전인 경우

  • 한동안 apt update 를 하지 않다가 오랜만에 실행한 경우

  • 오래된 칼리 이미지(ISO/VM)로 막 설치를 마친 경우


해결 방법

키만 최신으로 변경하면 됩니다. 칼리 공식이 안내하는 방법으로, 최신 서명 키를 내려받아 apt가 찾는 위치에 저장합니다.

wget https://archive.kali.org/archive-keyring.gpg -O /usr/share/keyrings/kali-archive-keyring.gpg

명령을 실행하면 아래처럼 키를 받아 저장합니다.

200 OK와 마지막 줄의 saved가 보이면 정상적으로 받아진 것입니다.

root@kali:~# wget https://archive.kali.org/archive-keyring.gpg -O /usr/share/keyrings/kali-archive-keyring.gpg
--2026-06-21 18:35:01--  https://archive.kali.org/archive-keyring.gpg
Resolving archive.kali.org (archive.kali.org)... 148.113.211.220, ...
Connecting to archive.kali.org ...|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3464 (3.4K) [text/plain]
Saving to: '/usr/share/keyrings/kali-archive-keyring.gpg'

/usr/share/keyrings/kali-archive-keyring.gpg   100%[===================>]   3.38K  --.-KB/s    in 0s

2026-06-21 18:35:02 (9.65 MB/s) - '/usr/share/keyrings/kali-archive-keyring.gpg' saved [3464/3464]

이 한 줄이면 최신 키가 /usr/share/keyrings/ 아래에 자리잡습니다. 이제 다시 업데이트를 실행해 봅니다.

apt update

서명 오류 없이 패키지 목록을 잘 받아오면 해결된 것입니다. 이어서 시스템을 최신 상태로 올려 둡니다.

apt full-upgrade -y

wget이 설치되어 있지 않다는 메시지가 나오면, 먼저 apt install wget으로 설치하거나 curl을 사용하면 됩니다.

다만 위 오류 상황에서는 보통 wget이 이미 깔려 있으니 그대로 진행하셔도 됩니다.


그래도 안 된다면 - 설치가 너무 오래된 경우

위 방법으로도 해결되지 않는다면, 칼리 설치 자체가 너무 오래됐을 가능성이 있습니다.

칼리 공식은 설치한 지 2년이 넘은 시스템은 더 이상 지원되지 않을 수 있다고 안내합니다.

이 경우 키만 바꿔서는 한계가 있고, 최신 버전으로 다시 설치하거나 전체 업그레이드를 진행하는 편이 깔끔합니다.

저장소 주소( sources.list ) 자체가 잘못되어 생기는 오류도 있는데, 이건 별도 주제라 다음 글에서 따로 다루겠습니다.

우선 칼리의 표준 저장소 주소는 아래 한 줄이라는 것만 알아 두시면 됩니다.

deb http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware

앞으로 이 문제를 예방하려면

원인이 "키를 오래 안 바꿔서"이니, 예방법도 단순합니다. 주기적으로 업데이트하는 것, 특히 kali-archive-keyring 패키지를 최신으로 유지하는 것입니다.

평소에 아래 명령을 가끔 실행해 주면 키가 만료되기 전에 자동으로 갱신되어, 위 오류를 만날 일이 없습니다.

apt update && apt full-upgrade -y

칼리는 롤링 릴리스(rolling release) 방식이라 끊임없이 업데이트됩니다.

한두 달에 한 번이라도 업데이트해 주면 시스템도 최신으로 유지되고, 서명 키도 만료 전에 갱신됩니다.


정리

증상:  apt update 시 "Missing key ... signature" 오류
원인:  칼리가 2~3년마다 서명 키를 교체하는데, 내 PC엔 옛 키만 있음
해결:  최신 키를 내려받아 교체
       → wget https://archive.kali.org/archive-keyring.gpg \
              -O /usr/share/keyrings/kali-archive-keyring.gpg
       → apt update
예방:  주기적으로 apt update && apt full-upgrade

서명 오류는 칼리를 쓰다 보면 누구나 한 번쯤 만나는 통과의례 같은 문제입니다.

원인이 "보안을 위한 키 교체"라는 걸 알면, 다음에 또 만나도 당황하지 않고 키만 갈아 끼우면 됩니다.

설치 직후라면 한글 설정도 함께 해 두시면 편합니다. 아래 두 글을 참고하세요.

잘 안 되는 부분이 있으면 댓글이나 문의로 남겨 주시면 답변 드리겠습니다.


읽어보면 좋을 추천 글

[Kali 공식 문서 — Resolving APT Errors Caused by an Expired Kali Linux Signing Key] 이 글의 근거가 된 칼리 공식 문서입니다.
실제 오류 메시지와 해결 명령, 예방법이 원문으로 정리되어 있습니다.

[Kali 공식 문서 — Kali Network Repositories (sources.list)] 저장소 주소를 직접 점검하거나 바꿔야 할 때 보는 공식 문서입니다.

표준 sources.list 한 줄의 정확한 형식을 확인할 수 있습니다.

[Kali 공식 문서 — Updating Kali] 칼리를 안전하게 최신으로 유지하는 표준 절차입니다. 오래된 설치를 업그레이드할 때 함께 보면 좋습니다.

[Kali 공식 문서 — Enabling Root] root 비밀번호 설정부터 GUI·SSH 직접 로그인 활성화( kali-root-login )까지,

root 계정을 제대로 켜는 전체 절차가 정리되어 있습니다.

[Kali 공식 문서 — All about sudo] 왜 칼리가 root 대신 일반 계정 + sudo 방식을 쓰는지, 그 배경과 sudo 사용법을 설명합니다.