Linux - pinentry에 대한 해결 방법[ERR 83918950 장치에 대한 부적절한 ioctl]

내 해결 방법은 GPG 암호를 묻는 터미널 명령을 생성하며 pinentry에서 작동하는 팝업이 아닙니다.

나는 pinentry에서이 오류가 발생했기 때문에 이것을했습니다.

# I'm running Manjaro KDE 21.3.5
$ echo GETPIN | pinentry
OK Pleased to meet you
S ERROR curses.isatty 83918950
ERR 83918950 Inappropriate ioctl for device <Pinentry>


여기까지 왔다면 이미 GPG 키를 만들었고 gnupg 및 git 구성 파일에 대해 알고 있다고 가정하겠습니다.

내 구성에 있는 내용은 다음과 같습니다.

# .zshrc, .bashrc...
export GPG_TTY=$(tty)



# gpg-agent.conf
pinentry-program /usr/bin/pinentry-curses
max-cache-ttl 60480000
default-cache-ttl 60480000



# gpg.conf
use-agent
pinentry-mode loopback

default-key  XXXXXXXXXXXXXXXX



# .gitconfig
[user]
    name = xxx
    email = xxx
    signingkey = XXXXXXXXXXXXXXXX
[gpg]
    program = gpg2
[commit]
    gpgsign = true


해결책



별칭으로 호출할 스크립트를 만들 것입니다.

# .zshrc, .bashrc...
alias unlock_gpg="~/.unlock_gpg.sh"



# ~/.unlock_gpg.sh  <- create this file and add the script below
current_dir=$(pwd)
cd ~/.unlock_gpg
git add .
git commit -m "abc"
git reset --soft HEAD~1
cd $current_dir



# Run this command:
$ chmod +x ~/.unlock_gpg.sh


이제 아래 단계에 따라 git repo가 ​​있는 폴더를 만듭니다.

$ mkdir ~/.unlock_gpg/
$ cd ~/.unlock_gpg/
$ git init
$ touch file.txt
$ git add .
$ git commit -m "first commit"
# if gpg ask for your password, provide it
$ echo 'hi' > file.txt

# This will reset your gpg agent, so you can test it below.
$ gpgconf --reload gpg-agent


이제 사용해 보세요.

$ unlock_gpg
# Now you should see a password prompt like this:
Enter passphrase:
# Just enter your password and sign your commits as you wish


더 나은/결정적인 솔루션이 있으면 의견을 말하십시오.

좋은 웹페이지 즐겨찾기