Gentoo Linux GPG는 인수를 통해 전달된 파일을 올바르게 암호화하지만 stdin에서 읽을 때 "장치에 적합하지 않은 ioctl"을 발생시킵니다.

Gentoo Linux GPG는 인수를 통해 전달된 파일을 올바르게 암호화하지만 stdin에서 읽을 때 "장치에 적합하지 않은 ioctl"을 발생시킵니다.

저는 커널 4.1.7-hardened-r1을 사용하여 Gentoo Hardened를 실행 중이고 GPG를 사용하여 SSH로 연 셸 세션에서 파일을 암호화하려고 하며 변수를 비활성화하여 DISPLAY비밀번호 프롬프트에 pinentry-curses를 사용하려고 합니다. 내 것을 사용하면 gpg -o file.gpg --symmetric file암호화가 잘 작동합니다 . 사용하면 pv file | gpg -o file.gpg --symmetric다음과 같은 오류 메시지가 나타납니다.

gpg-agent[30745]: command get_passphrase failed: Inappropriate ioctl for device

답변1

GPG_TTY아래와 같이 제대로 작동하려면 환경 변수를 설정해야 합니다.이 파일:

GPG_TTY=$(tty)
export GPG_TTY

이 두 줄은 (bash로 가정)에 있어야 ~/.bashrc새 터미널 세션을 열 때마다 실행됩니다.

하지만 또 다른 해결책이 있습니다. bash에서는 pv프로세스 대체를 사용하여 실행하고 파일인 것처럼 가장할 수 있습니다.

gpg -o file.gpg --symmetric <(pv file)

따라서 추가 입력이 필요한 프로그램에 항목을 연결하는 것은 아마도 좋은 생각이 아닐 것입니다. 예상과 다르게 작동할 수 있습니다.

관련 정보