수동으로 설치된 wsl에서 kali를 적절하게 업데이트하는 방법은 무엇입니까?

수동으로 설치된 wsl에서 kali를 적절하게 업데이트하는 방법은 무엇입니까?

Windows 10에서 kali wsl(버전 1)을 사용하고 있으며 이 방법을 사용하여 C가 아닌 드라이브에 설치했습니다.여기.

다음이 반환됩니다 uname -r. 4.4.0-19041-Microsoft

적절한 업데이트 시 다음 오류가 발생합니다.

user@host:~$ sudo apt update
[sudo] password for user:
Get:1 <mirror_site> kali-rolling InRelease [30.5 kB]
Err:1 <mirror_site> kali-rolling InRelease
  The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <[email protected]>
Fetched 30.5 kB in 2s (12.5 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: <mirror_site> kali-rolling InRelease: The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <[email protected]>
W: Failed to fetch http://http.kali.org/kali/dists/kali-rolling/InRelease  The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <[email protected]>
W: Some index files failed to download. They have been ignored, or old ones used instead.

그런 다음 의 문제를 해결하려고 시도했는데 gpg --keyserver hkp://keys.gnupg.net --recv-key 7D8D0BF6다음 오류가 발생했습니다.

E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation

그래서 gnupg_2.2.27-2_all.deb수동으로 설치를 시도했습니다.데비안 패키지. 그러나 더 많은 종속성 문제가 발생합니다.

user@host:~$ sudo dpkg -i gnupg_2.2.27-2_all.deb
(Reading database ... 17159 files and directories currently installed.)
Preparing to unpack gnupg_2.2.27-2_all.deb ...
Unpacking gnupg (2.2.27-2) over (2.2.27-2) ...
dpkg: dependency problems prevent configuration of gnupg:
 gnupg depends on dirmngr (<< 2.2.27-2.1~); however:
  Package dirmngr is not installed.
 gnupg depends on dirmngr (>= 2.2.27-2); however:
  Package dirmngr is not installed.
 gnupg depends on gnupg-l10n (= 2.2.27-2); however:
  Package gnupg-l10n is not installed.
 gnupg depends on gnupg-utils (<< 2.2.27-2.1~); however:
  Package gnupg-utils is not installed.
 gnupg depends on gnupg-utils (>= 2.2.27-2); however:
  Package gnupg-utils is not installed.
 gnupg depends on gpg (<< 2.2.27-2.1~); however:
  Package gpg is not installed.
 gnupg depends on gpg (>= 2.2.27-2); however:
  Package gpg is not installed.
 gnupg depends on gpg-agent (<< 2.2.27-2.1~); however:
  Package gpg-agent is not installed.
 gnupg depends on gpg-agent (>= 2.2.27-2); however:
  Package gpg-agent is not installed.
 gnupg depends on gpg-wks-client (<< 2.2.27-2.1~); however:
  Package gpg-wks-client is not installed.
 gnupg depends on gpg-wks-client (>= 2.2.27-2); however:
  Package gpg-wks-client is not installed.
 gnupg depends on gpg-wks-server (<< 2.2.27-2.1~); however:
  Package gpg-wks-server is not installed.
 gnupg depends on gpg-wks-server (>= 2.2.27-2); however:
  Package gpg-wks-server is not installed.
 gnupg depends on gpgsm (<< 2.2.27-2.1~); however:
  Package gpgsm is not installed.
 gnupg depends on gpgsm (>= 2.2.27-2); however:
  Package gpgsm is not installed.
 gnupg depends on gpgv (>= 2.2.27-2); however:
  Version of gpgv on system is 2.2.12-1.

dpkg: error processing package gnupg (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 gnupg

이 이후에는 무엇을 해야 할지 모르겠습니다. 이러한 모든 종속성을 수동으로 다운로드하고 설치해야 합니까? 적절한 작업을 제대로 수행하려면 어떻게 해야 합니까?

답변1

이런 복잡한 과정을 거치게 해서 미안하지만 방금 하나 찾았어요많은더 간단한 솔루션. 앞으로 다른 사람이 이런 문제에 직면할 때 시간을 절약할 수 있기를 바랍니다.

키링을 업데이트하려면:

> wget https://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2020.2_all.deb
> sudo dpkg -i kali-archive-keyring_2020.2_all.deb

그러면 정상적으로 진행할 수 있을 것입니다 sudo apt update && sudo apt upgrade.

예의 바른u/desktopechoReddit에서 인용됨Github 저장소.

답변2

이는 Microsoft 설명서의 오래된 링크로 인해 발생하는 것 같습니다.수동으로 배포판 설치. 연결된 Kali 패키지는 2019.2이며 해당(오래된) 패키지에서 발생한 문제를 재현할 수 있습니다. 물론 Microsoft Store에서 설치된 버전이 2021.2이므로 최신 Kali WSL 패키지를 사용할 수 있습니다. 불행히도 패키지에 대한 직접 링크를 모릅니다. 나는 이것을 다음과 같이 사용했습니다.질문MicrosoftDocs\WSL Github에 있습니다.

문제는 Kali에서 WSL용으로 제공하는 배포판이 매우 작고 "정규" 배포판(예: GPG)에서 제공되는 일부 도구를 포함하지 않는다는 사실로 인해 더욱 악화됩니다. 따라서 키를 업데이트하기 위해 일반적으로 따르는 지침은 WSL에서 작동하지 않습니다.

gpg작동하지 않고 모든 종속성을 설치하는 방법이 있을 수도 있지만 apt제 생각에는 그럴 가치가 없습니다.

대신에 설치해야 하는 경우 대체 설치 방법을 제안하겠습니다 C:.일시적으로C:이 프로세스 동안 1GB 미만의 공간이 드라이브에 전용(또는 해제)됩니다. 마지막에 공개할 수 있습니다.

아래 지침의 길이 때문에 겁을 먹지 마십시오. 나는 당신이 무슨 일이 일어나고 있는지 확실히 이해하고 가능한 한 실패하지 않도록 노력하기 위해 지나치게 자세하게 설명하는 경향이 있습니다. 아래의 전체 프로세스를 개인적으로 테스트했지만 문제가 발생하면 알려주시기 바랍니다.

  • 먼저 기존 Kali 설치를 삭제합니다. 최근에 설치하신 것 같으니 거기에 키 파일이 없다고 가정하겠습니다. 하지만 그렇게 한다면 WSL 인스턴스 밖으로 이동하세요.

    그런 다음 PowerShell 또는 CMD에서 다음을 수행합니다.

    wsl --unregister kali-linux
    
  • 또한 이전에 다운로드한 (오래된, 오래된) 패키지 파일을 삭제하세요.

  • 다음으로 Microsoft Store로 이동하여 Kali를 설치하세요. 이렇게 하면 보호된 디렉터리에 패키지 파일이 설치되므로 C:\Program Files\WindowsApps\해당 드라이브에 일시적으로 공간이 필요합니다.

  • Windows 터미널을 실행하고 있다고 가정하고 Start-Process wt -Verb RunAsPowerShell에서 실행하여 관리자 프롬프트를 받으세요. Windows 터미널이 아닌 경우 관리자 권한으로 PowerShell을 실행하세요.

  • Admin PowerShell에서 다음을 실행 Get-ChildItem -Recurse 'C:\Program Files\WindowsApps\Kali*' | Where-Object {$_.Name -eq 'install.tar.gz' } | % { $_.DirectoryName } | Set-Clipboard하여 Kali 패키지가 설치된 디렉터리를 가져옵니다.

  • 를 통해 올바른 경로를 찾는지 확인하세요 Get-Clipboard. 이는 다음과 같은 결과를 반환해야 합니다 C:\Program Files\WindowsApps\KaliLinux.54290C8133FEE_1.8.0.0_x64__ey8k8hqnwqnmg. 이 경로는 나중에 변경될 수 있지만(나중에 이 답변을 읽으면) 괜찮습니다.

  • 관리 셸을 종료하고 "일반 사용자" PowerShell로 돌아갑니다.

    mkdir D:\wsl\instances\kali-linux
    cd D:\wsl\instances\kali-linux
    Get-Clipboard # Confirm that the Kali package path is still on the clipboard
    Copy-Item "$(Get-Clipboard)\*"
    

    그러면 패키지 파일이 D:드라이브에 복사됩니다. 물론 설치 경로를 원하는 대로 설정할 수 있습니다. 저는 wsl\instances\distro-name여러 배포판과 인스턴스를 유지하기 때문에 개인적으로 하나의 형식을 사용합니다 . 나중에 더 많은 사본이 필요할 경우를 대비해 향후 교정용으로 권장합니다.

  • 이제 대상 디렉터리에 많은 파일이 있어야 합니다. 그것은 다음과 같습니다:

    Name
    ----
    AppxBlockMap.xml
    AppxManifest.xml
    AppxMetadata/
    AppxSignature.p7x
    Assets/
    install.tar.gz
    kali.exe
    resources.pri
    
  • 여기에서 다시 익숙한 영역으로 돌아가야 합니다. 를 실행하고 .\kali.exe잠시 기다린 후 사용자 이름과 비밀번호를 설정하면 WSL이 Kali로 부팅됩니다.

  • Kali를 종료하고 (PowerShell로 돌아가서) Remove-Item Appx*, Assets, install.tar.gz, resources.pri.

  • WSL1의 경우 다음과 같이 끝나야 합니다.

    • rootfs파일 시스템이 저장되는 디렉터리입니다. 중요한 팁: 하세요아니요어떤 이유로든 Windows/PowerShell/CMD/Notepad/기타 Windows 응용 프로그램 등에서 액세스하세요.거기 용이 있어요.
    • 디렉토리temp
    • fsserver
    • kali.exe복사했지만 삭제하지는 않은 명령입니다 . IMHO 그다지 유용하지는 않지만 필요할 수도 있습니다. 그것할 수 있는Kali를 시작하는 데 사용되지만 이 wsl명령이 훨씬 더 좋습니다(더 많은 기능, 더 나은 지원).
  • Microsoft Store에서 Kali를 제거하여 드라이브 공간을 확보하세요 C:.

설치는 Microsoft Store에서 사용할 수 있는 Kali의 최신 및 최고 버전이어야 합니다. Kali 버전은 를 사용하여 확인할 수 있습니다 cat /etc/os-release. 현재는 2021.2. sudo apt update && sudo apt upgrade이제 잘 작동할 텐데...

관련 정보