make run_nokdbtests
ps -ef
make run_nokdbtests
ps -ef
ํ ์คํธ๊ฐ ์๋ฃ๋ ํ gpg-agents๋ฅผ ์ค์งํด์ผํฉ๋๋ค.
๊ฐ ํ ์คํธ ์คํ์ ๋ ๋ง์ gpg-agent๋ฅผ ์์ฑํฉ๋๋ค.
+ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 05:57 pts/0 00:00:00 bash
root 11296 1 0 07:01 pts/0 00:00:00 sh -c /usr/bin/python2 /root/cppcms-1.2.0/tests/http_timeouts_test.py
root 11297 11296 0 07:01 pts/0 00:00:00 /usr/bin/python2 /root/cppcms-1.2.0/tests/http_timeouts_test.py write
root 28509 1 0 07:55 ? 00:00:00 gpg-agent --homedir /tmp/elektra-test.NmmZ2I/.gnupg --use-standard-soc
root 28519 1 0 07:55 ? 00:00:00 gpg-agent --homedir /tmp/elektra-test.6mb1t2/.gnupg --use-standard-soc
root 28539 1 0 07:55 ? 00:00:00 gpg-agent --homedir /tmp/elektra-test.5XdxDR/.gnupg --use-standard-soc
root 30656 1 0 08:00 pts/0 00:00:00 ps -ef
+ make run_nokdbtests
+ ps -ef
+ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 05:57 pts/0 00:00:00 bash
root 11296 1 0 07:01 pts/0 00:00:00 sh -c /usr/bin/python2 /root/cppcms-1.2.0/tests/http_timeouts_test.py
root 11297 11296 0 07:01 pts/0 00:00:00 /usr/bin/python2 /root/cppcms-1.2.0/tests/http_timeouts_test.py write
root 28509 1 0 07:55 ? 00:00:00 gpg-agent --homedir /tmp/elektra-test.NmmZ2I/.gnupg --use-standard-soc
root 28519 1 0 07:55 ? 00:00:00 gpg-agent --homedir /tmp/elektra-test.6mb1t2/.gnupg --use-standard-soc
root 28539 1 0 07:55 ? 00:00:00 gpg-agent --homedir /tmp/elektra-test.5XdxDR/.gnupg --use-standard-soc
root 30778 1 0 08:02 ? 00:00:00 gpg-agent --homedir /tmp/elektra-test.GZbzqb/.gnupg --use-standard-soc
root 30788 1 0 08:02 ? 00:00:00 gpg-agent --homedir /tmp/elektra-test.PEjcKs/.gnupg --use-standard-soc
root 30808 1 0 08:02 ? 00:00:00 gpg-agent --homedir /tmp/elektra-test.d6yL2g/.gnupg --use-standard-soc
root 30923 1 0 08:02 pts/0 00:00:00 ps -ef
๋ฌธ์ ๋ฅผ ์ ๊ณ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
@ petermax2 ํ ์คํธ ์ค์ gpg ๋ช ๋ น์ด gpg-agents๋ฅผ ์์ฑ ํ ์ ์์ต๋๊น?
์ฃ์กํฉ๋๋ค. gpg๊ฐ ํญ์ ๋์ผํ ์์ด์ ํธ์ ์ฐ๊ฒฐ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ์กฐ์ฌํ๊ฒ ์ต๋๋ค.
@ markus2330 ์ด๊ฒ์ docker ์ปจํ ์ด๋๊ฐ 1000 : 1000์ผ๋ก ์คํ๋๋ฏ๋ก v2์ ์ฌ์ฉ์ ID๋ก๋ณด๊ณ ๋ gpg ์์ด์ ํธ๊ฐ ๋๋ฌด ๋ง์ ์ด์ ์ด๊ธฐ๋ํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ฌธ์ ๋ ๋์ปค์๋ง ๊ตญํ๋์ง ์์ต๋๋ค. debian-stretch-minimal๋ 250 ๊ฐ๋ฅผ ์ด๊ณผํฉ๋๋ค.
์ผ๋ถ ๋ ธ๋๋ ํ ์คํธ์์ ์ฌ์ฉ๋๋ ์ ํจ์ค ์ฉ gpg-agent๋ฅผ ์์ฑํ๋๋ก ์ค์ ๋์๊ธฐ ๋๋ฌธ์ ์ํฅ์๋ฐ์ง ์์ต๋๋ค (์๋ง๋ ํ์ธํด์ผ ํจ).
์กฐ์ฌํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
์ผ๋ถ ๋ ธ๋๋ ํ ์คํธ์์ ์ฌ์ฉ๋๋ ์ ํจ์ค ์ฉ gpg-agent๋ฅผ ์์ฑํ๋๋ก ์ค์ ๋์๊ธฐ ๋๋ฌธ์ ์ํฅ์๋ฐ์ง ์์ต๋๋ค (์๋ง๋ ํ์ธํด์ผ ํจ).
์์ํ๋ ์์ด์ ํธ๋ฅผ ์ข ๋ฃ ํ ๋ฐฉ๋ฒ์ ์ฐพ์ ์์๋ ๊ฒฝ์ฐ ํ๊ฒฝ์ ์ด๋ฏธ gpg-agent (# 1888)๊ฐ ์์์ ์๊ตฌํ ์ ์์ต๋๋ค.
์๋ง๋ gpg ์์ด์ ํธ๋ ์์ํ๋ ๋ฐ ์ ํ ํ์ํ์ง ์์ผ๋ฉฐ ํ ์คํธ ์ค์ ์ต์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ ๋ ์ ๊ทธ๊ฒ์ ๋ด์ผํ๋ค.
mh ์ผ๋ฐ์ ์ผ๋ก GPG_AGENT_INFO
๋ ํ๋๊ฐ ์์๋ ๋ ์ค์ ๋์ด์ผํฉ๋๋ค. ๊ณผ๊ฑฐ์๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ ๋ฆฌํ์ฌ ๊ณผ๊ฑฐ์ ์ฌ๋ฌ ๋ฒ์ ์์์ ์ค๋ช
ํ์ ์ ์์ต๋๋ค. ๊ทธ๋๋ ์ ์ฌ์ ํ ์ผ์ด๋๊ณ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค ...
@ petermax2 gpg-agent๊ฐ ํ์ํ ํ ์คํธ (gpg-agent๋ฅผ gpg-agent.bak๋ก ์ด๋ฆ์ ๋ณ๊ฒฝํ์ฌ ์ฐพ์์ต๋๋ค;)) :
testmod_fcrypt
testmod_crypto_openssl
testmod_crypto_gcrypt
testmod_crypto_botan
๋ testmod_crypto_gcrypt
๋ฐ testmod_crypto_openssl
์ฒ๋ผ ์ ํํ ์คํ๋์ด์ผํฉ๋๋ค. Botan ํ
์คํธ๊ฐ ์๋ฒ์์ ์คํ๋๊ณ ์์ต๋๊น?
@ petermax2 ์๋ง๋ ๊ทธ๋ ์ต๋๋ค. ๋ด๊ฐ ํ ์คํธ ํ ํ๊ฒฝ์์๋ botan์ด ์ค์น๋์ง ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๊ธฐ์์ ์คํ ์ค์ด๋ฉฐ ์์ด์ ํธ๋ฅผ ์์ฑ ํ ์๋ ์์ต๋๋ค.
๊ทธ๋ ๊ฒ ๊ฐ๋จํ์ง ์์ต๋๋ค. ๋จ์ ํ
์คํธ ์ค์ --no-autostart
์ธ์๋ก gpg
ํธ์ถ์ ์๋ํ์ง๋ง gpg๋ ์ฌ์ ํ ์์ด์ ํธ๋ฅผ ์์ํฉ๋๋ค. --no-use-agent
์ ์ฌ๋ฐ์ต๋๋ค. ๋งค๋ด์ผ ํ์ด์ง๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
--no-use-agent
This is dummy option. gpg2 always requires the agent.
์์ํ๋ ์์ด์ ํธ๋ฅผ ์ข ๋ฃ ํ ๋ฐฉ๋ฒ์ ์ฐพ์ ์์๋ ๊ฒฝ์ฐ ํ๊ฒฝ์ ์ด๋ฏธ gpg-agent (# 1888)๊ฐ ์์์ ์๊ตฌํ ์ ์์ต๋๋ค.
์ด ๊ธฐํ๋ฅผ ์ฃผ์๊ฒ ์ต๋๊น?
๋๋ ๊ฐ์ ํฌ๋ก ์์ ์
pgrep gpg-agent | xargs -d "\n" kill
๋๋ ๋น๋ ์๋ฒ / ์ปจํ ์ด๋์์ ๋น์ทํ ๊ฒ?
์์ด์ ํธ๋ฅผ ์ฌ์ฉํ ์ ์๋์ง ํ์ธํ๊ณ ์์ํ์ง ์์ผ๋ฉด pid๋ฅผ ์ ์งํฉ๋๋ค. ํ ์คํธ ์ ๋ฆฌ์์ ์์ด์ ํธ๋ฅผ ์ค์งํ์ญ์์ค. ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ํดํน์ ๋๋ค.
๋น์ ์ด ์ณ์ต๋๋ค. ์ ์ผํ ์ง๋ฌธ์ ์์๊ณผ ์ค์ง๊ฐ ์ด๋์์ ๋ฐ์ํด์ผ ํ๋๊ฐ์ ๋๋ค. ์์ด์ ํธ / ๋์ปค ๋ด์์์ด ์์ ์ ์ํํ๋ ๊ฒ์ด C๋ก ์์ฑ๋ ๋จ์ ํ ์คํธ๋ณด๋ค ์ฌ์ด ๊ฒ ๊ฐ์ต๋๋ค.
์ง๊ธ๊น์ง ๋ฐฐ์ด ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ชจ๋ gpg
ํธ์ถ์์ ์ผ๊ด๋๊ฒ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ --no-autostart
์ต์
์ผ๋ก gpg-agent
์ ์๋ ์์์ ์ต์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ gpg-agent
gpg2
์์ด๋ ๊ฐ์ธ ํค (์ฆ, ์ํธ ํด๋
, ์๋ช
)๊ฐ ํ์ํ ์์
์ ์ํ ํ ์ ์์ต๋๋ค.
gpg-agent --server
๋ฅผ ํฌํฌ ํ ์๋ ์์ง๋ง gpg2
๋ ์์ด์ ํธ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ํ๊ฒฝ ๋ณ์ GPG_AGENT_INFO
๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ gpg2
๋ ์ด์ ๊ณ ๋ ค๋์ง ์์ต๋๋ค.
ํฌํฌํ๊ณ execv gpg-agent --daemon
๋ฅผ ์๋ํฉ๋๋ค. ์์๋ gpg-agent
์ PID๋ฅผ ์ฐพ์ ์์๋ ๋ฐฉ๋ฒ SIGTERM
์์ผ๋ฉด ํ
์คํธ๊ฐ ์๋ฃ ๋ ๋
์์ด์ ํธ / ๋์ปค ๋ด์์์ด ์์ ์ ์ํํ๋ ๊ฒ์ด C๋ก ์์ฑ๋ ๋จ์ ํ ์คํธ๋ณด๋ค ์ฌ์ด ๊ฒ ๊ฐ์ต๋๋ค.
ํจ์ฌ ์ฌ์์ :-)
์์ด์ ํธ์ ์ฐ๊ฒฐํ๊ธฐ ์ํด gpg์ ๊ธฐ๋ณธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ณ๋ค๊ณ ์๊ฐํฉ๋๋ค.
gpg-agent๋ฅผ ์์ / ์ค์งํ๋ ๋์ .gnupg / gpg.conf์์ "use-agent"๋ฅผ ๋นํ์ฑํ ํ ์๋ ์์ต๋๋ค.
ํ๋์ ์์ด์ ํธ ์๋ ์์์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ ํ ์คํธ๋ฅผ ์์ํ๋ ํ์ ํ ์คํธ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์์ด์ ํธ์ ์ฐ๊ฒฐํ๊ธฐ ์ํด gpg์ ๊ธฐ๋ณธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ณ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ๋ก๋์
ํ๊ฒฝ์์๋ ๋ ๋์ ์ต์
์
๋๋ค. ๋ด ์ปดํจํฐ์์ crypto
๋ฐ fcrypt
ํญ์ ๋์ผํ ์์ด์ ํธ์ ์ฐ๊ฒฐ๋๋ฉฐ ๋ด Yubikey์์ ํตํฉ์ด ๋งค์ฐ ์ ์๋ํฉ๋๋ค.
ํ ์คํธ ํ๊ฒฝ์์ ์ฐ๋ฆฌ๋ ํ ์คํธ๋ฅผ ์์ํ๊ธฐ ์ ์ ์์ด์ ํธ์ ๋จ์ผ ์ธ์คํด์ค๋ฅผ ๊ณ์ ์คํํ๊ณ ์์ต๋๋ค. ๋ฌธ์ ๋ @ingwinlu๊ฐ ์ด์ ์ ์ธ๊ธํ๋ฏ์ด ํ๊ฒฝ์ ์ ๋ฆฌํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ฌธ์ ๋ ์ฐ๋ฆฌ๊ฐ ํ๊ฒฝ์ ์ ๋ฆฌํ๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๋ ์ด์ํ์ง ๋ง์์ผํฉ๋๋ค. ํ์ง๋ง ๋ฌธ์ ๋ ๊ณ์๋ฉ๋๋ค
gpg-agent๊ฐ ํ๊ฒฝ์ ํตํด ํต์ ํ๋ ค๊ณ ํ๋ฉด ๋ถ๋ช ํ ์๋ ํ ์ ์์ผ๋ฉฐ ๋ค์ ํ ์คํธ ์คํ์ ์ด์ ์ ํ ์คํธ ์คํ์ผ๋ก ์ค์ ๋ ํ๊ฒฝ์ ๊ฐ์ ธ ์ค์ง ์์ต๋๋ค.
๋ค์ ๋ ๊ฐ์ง ์ต์ ์ด ๊ฐ์ฅ ์ข์ต๋๋ค.
๋ฐ๋ชฌ์ด ์ด๋ฏธ ์์๋์๋์ง (๊ทธ๋ฆฌ๊ณ env vars๋ ์ ์ญ ์ ์ด ์ง ์๊ณ ํ๋ก์ธ์ค์ ํน์ ํ์ง) ์ ์์๋ ๊ธ๋ก๋ฒ ๋ฐฉ๋ฒ์์ด ํ์์ ๋ฐ๋ผ ๋ฐ๋ชฌ์ด ์์๋๋ ์ค์ ์ด ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ ์คํธ ๋ด์์ ์ด๊ฒ์ ๊ณ ์น๋ ค๊ณ ํ์ง ๋ง์์ผํฉ๋๋ค.
๋ง์ ์์ด์ ํธ๋ฅผ ์์ฑํ๋ ์ด์ ๋ --homedir ์ต์ ์ ์ฌ์ฉํ๋ ๋ค๋ฅธ ํ ๋๋ ํ ๋ฆฌ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋จ์ผ ๋๋ ํ ๋ฆฌ๊ฐ ์ฌ์ฉ๋์์ ๊ฒ์ ๋๋ค. GnuPG 2.1๋ถํฐ ์์ด์ ํธ์์ ๋ชจ๋ ํต์ ์ GnuPG ํ ๋๋ ํ ๋ฆฌ์ ์์ผ์ ํตํด ์ํ๋ฉ๋๋ค.
homedir ์ต์ ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ https://dev.gnupg.org/T3218 ์ stackoverflow์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ "(๋งค์ฐ ์ด์ํ) ํด๊ฒฐ ๋ฐฉ๋ฒ"์ผ๋ก ์ค๋ช ํฉ๋๋ค.
๋จ์ํ gpg-agent๋ฅผ ์์ํ๋ ๊ฒ์ด (์ฐ๋ฆฌ ํ๊ฒฝ ๋ด์์ ํต์ ๋ ๋ฐฉ์์ผ๋ก) ๊ฐ์ฅ ๋ฏธ๋ ๋ณด์ฅํ ๋ณํ ์ผ ์ ์์ต๋๋ค. ์ต๊ทผ ๋ฒ์ ์์ gpg-agent์ ์์์ ๋ ์ด์ ์ ํ ์ฌํญ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. (๋ด ์ต์ 2. ์์ ๋ง๋ ์๋๋)
homedir ์ต์ ์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
๋ค, ์ด๋์์ ์๋์ง ์ฐพ์ง ๋ชปํ์ง๋ง ๋ชจ๋ ์์ด์ ํธ๊ฐ ๋ค๋ฅธ ์์ด์ ํธ๋ก ์์ฑ๋์์ผ๋ฏ๋ก ๋ฌธ์ ์ ์ผ์นํฉ๋๋ค.
์ข์ ํํธ์์ต๋๋ค. gpg-agent์ ์์์ด ๋ ์ด์ ์ ํ ์ฌํญ์ด ์๋๋ผ๋ ๊ฒ์ ์๊ฒ๋์์ต๋๋ค.
์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ์์ํ๊ณ ๋ฉ์ถ ํ์๊ฐ ์์์ ๋งค์ฐ ๋ถ๋ช ํ๊ฒํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์์ ํผํ๋ ค๊ณ ํ์ง ๋ง์ญ์์ค.
homedir ์ต์ ์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
์, ์ด๋์์ ์๋์ง ์ฐพ์ง ๋ชปํ์ง๋ง ๋ฌธ์ ์ ์ผ์นํฉ๋๋ค (op ์ฐธ์กฐ)
์ฐ๋ฆฌ๋ --home-dir
์ต์
์ ๋ช
์ ์ ์ผ๋ก ์ฌ์ฉํ์ง ์์ง๋ง ps -ef
๋ gpg
์ด์จ๋ ์ค์ ํ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
https://wiki.archlinux.org/index.php/GnuPG
$ GNUPGHOME์ GnuPG์์ ๊ตฌ์ฑ ํ์ผ์ด ์ ์ฅ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก $ GNUPGHOME์ ์ค์ ๋์ง ์๊ณ ๋์ $ HOME์ด ์ฌ์ฉ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ค์น ์งํ ~ / .gnupg ๋๋ ํ ๋ฆฌ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ์์น๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด gpg๋ฅผ ์คํํ์ญ์์ค. $ gpg --homedir path / to / file ๋๋ GNUPGHOME ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ญ์์ค.
```
@ petermax2 ํ ์คํธ ์ค์ํธ์์ HOME์ ์ฌ์ฉํ ์ ์๋์ง ํ์ธํ ์ ์์ต๋๊น?
๋ํ ํฅ๋ฏธ๋ก์ด https://www.gnupg.org/documentation/manuals/gnupg/Ephemeral-home-directories.html :
์์ ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํ๊ณ , ํ์์ ๋ง๋ ๊ตฌ์ฑ์ ์์ฑ (๋๋ ๋ณต์ฌ)ํ๊ณ , gpg๊ฐ ํ๊ฒฝ ๋ณ์ GNUPGHOME ๋๋ ์ต์ --homedir์ ์ฌ์ฉํ์ฌ์ด ๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋กํฉ๋๋ค. GPGME๋ ์ปจํ ์คํธ์ ์์ง ์ ๋ณด๋ฅผ ์์ ํ์ฌ ์ปจํ ์คํธ๋ณ๋ก์ด๋ฅผ ์ง์ํฉ๋๋ค. ์ด์ ์ํ๋ ์์ ์ ์คํํ๊ณ ํ์์ ๋ฐ๋ผ ํค ์๋ฃ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๋ด ๋ณด๋ ๋๋ค. ์๋ฃ๋๋ฉด ๋๋ ํ ๋ฆฌ๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค. ์์๋ ๋ชจ๋ GnuPG ๋ฐฑ์๋ ์๋น์ค๋์ด๋ฅผ ๊ฐ์งํ๊ณ ์ข ๋ฃํฉ๋๋ค.
๋ด ์ปจํ ์ด๋์์ ์ด๊ฒ์ ํ ์คํธํ์ผ๋ฉฐ ์ฝ์๋๋ก ํ๋ก์ธ์ค๋ฅผ ์๋์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.
@ petermax2 ํ ์คํธ ์ค์ํธ์์ HOME์ ์ฌ์ฉํ ์ ์๋์ง ํ์ธํ ์ ์์ต๋๊น?
์, HOME
) ์ฌ์ฉํ ์ ์์ต๋๋ค.
HOME = /tmp/elektra-test.3vLR4L
OK ๊ทธ๋์ ํ ์คํธ ์ค์ํธ์ ๋ฌด์ธ๊ฐ๊ฐ HOME์ tmp ๋๋ ํ ๋ฆฌ๋ก ์ฌ์ ์ํ๊ณ ์์ต๋๋ค (์ข์ต๋๋ค). ์ ๋ฆฌ ์ค์ ์ฌ์ ํ ์ฌ์ฉํ ์์๋ ๊ฒฝ์ฐ ์์ด์ ํธ๋ฅผ ์ค์งํ๊ธฐ ์ํด ์ ๊ฑฐํด์ผํฉ๋๋ค. ๊ทธ๊ฒ์ ์ด์์ ์ธ ํด๊ฒฐ์ฑ ์ด ๋ ๊ฒ์ ๋๋ค.
GNUPGHOME
๋ง ์ค์ ํ๋ฉด gpg-agent
์ธ์คํด์ค๊ฐ ํ๋๋ง ์์ฑ๋ฉ๋๋ค. ํ
์คํธ๊ฐ ์์๋๊ธฐ ์ ์ GNUPGHOME
๋ฎ์ด ์ฐ์ง ์์ต๋๋ค.
GNUPGHOME
์ค์ ํ๋ฉด ์ฌ๋ฌ ํ
์คํธ๋ฅผ ์คํ ํ ํ ํ๋์ gpg-agent
๋ง ์คํ๋ฉ๋๋ค.
์ด๊ฒ์ด ๊ฐ์ฅ ๊ฐ๋จํ ํด๊ฒฐ์ฑ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ํ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ณต์ ํ๋ฉด ํ
์คํธ๋ฅผ ๋ณ๋ ฌ๋ก ์คํํ์ง ๋ชปํ ์๋ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ค์ GNUPGHOME์ ์ญ์ ํด์ผํฉ๋๋ค (๋ก๊ทธ์ธ ํ ์ฌ์ฉ์ ๊ถํ์ ๋ํด ๋๋ฆฐ pgp-agent ์๋ต ํธ์ถ์ ์ํ์ง ์์ต๋๊น?).
๊ทธ๋ฆฌ๊ณ ๋์ ์์คํ ์ด GNUPGHOME์์ ๋ฆด๋ ์ดํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๊ธฐ์กด ํ๊ฒฝ์ ์ ์ฅํ๊ณ ํ ์คํธ ํ ์๋์ผ๋ก ๋ณต์ํด์ผํฉ๋๋ค.
ํ ๋ฐ ๋ฌผ๋ฌ์์ ์ด๋ฌํ ํ ์คํธ๊ฐ ํ ์คํธ ์๋ฒ ํ๊ฒฝ๋ฟ๋ง ์๋๋ผ ์ฌ์ฉ์ ์์คํ ์ ์ด๋ค ์ํฅ์ ๋ฏธ์น ์ ์๋์ง ์ดํด๋ณผ ์ ์๋ค๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
ํ ์คํธ๋ฅผ ๋ณ๋ ฌ๋ก ์คํํ์ง ๋ชปํ ์๋ ์์ต๋๋ค.
์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ต๋๋ค.
#!/bin/bash
mkdir /tmp/x
export GNUPGHOME=/tmp/x
for run in {1..1000000}
do
ctest -R crypto_openssl &
done
์๋ฌด ๋ฌธ์ ์์ด. GPG๋ ์ ๊ธ ๋ฑ์ ์ฒ๋ฆฌํด์ผํฉ๋๋ค.
๋ก๊ทธ์ธ ํ ์ฌ์ฉ์ ๊ถํ์ ๋ํด ๋๋ฆฐ pgp-agent ์๋ต ํธ์ถ์ ์ํ์ง ์์ต๋๊น?
์ด๊ฒ์ด gpg-agent
๊ฐ ์ค๊ณ๋ ๋ฐฉ์์
๋๋ค. ์ฌ์ฉ์ ์ธ์
์ด ๋๋ ๋๊น์ง ์์ํ ์คํ๋ฉ๋๋ค. PID๋ฅผ ์ด๋ค ๊ณณ์ ๊ธฐ๋กํ์ง ์์ผ๋ฉฐ ์ข
๋ฃ ๋ช
๋ น๋ ์์ต๋๋ค. SIGTERM
์๋ง ๋ฐ์ํฉ๋๋ค.
๋๋์ ์๋ fork
gpg-agent
์ ๋จ์ ํ
์คํธ ๋ด์์ --server
์ต์
, ์ฐ๋ฆฌ๋์ PID์์ ๊ฒ์
๋๋ค ๋๋ฌธ์ kill
์ดํ. ๊ทธ๋ฌ๋ gpg-agent
๋ $GNUPGHOME
์์ ํ์ํ ์์ผ์ ์ด์ง ์๊ณ ๋จ์ ํ
์คํธ๋ ์์ด์ ํธ์ ๋ค๋ฅธ ์ธ์คํด์ค ( --daemon
๋ชจ๋์์ ์คํ ์ค์)๋ฅผ ๋ค์ ์ฝ๋ ๋ค. ๋ํ --server
๋ชจ๋์์ gpg-agent
์์ผ์ ์ฌ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค ( gpg-agent
์ ์์ค ์ฝ๋๋ก ํ์ธํ์ต๋๋ค).
gpg-agent
์ ํต์ ํ๊ธฐ ์ด๋ ต๊ณ ๊ฑฐ์ ๋ฌธ์ํ๋์ง ์์์ต๋๋ค. gpg-agent
์ ์์ค ์ฝ๋๋ ์ฝ์์ต๋๋ค. ์ฐ๋ฆฌ์ ์ฌ์ฉ ์ฌ๋ก๋ ๋ค๋ฃจ์ง ์์ต๋๋ค. ์ ์ผํ ์ต์
์ SIGTERM
์
๋๋ค.
๋ณํ
๋๋ ๋น์ ์ด ์๋ก ์ํฅ์ ์ฃผ์ด์๋ ์๋๋ gpg-agent๋ฅผ ๋ถ๋ฆฌํ๊ณ ์ถ๋ค๊ณ ์๊ฐํ์ต๋๋ค. ์ฆ, ์์ด์ ํธ a ๋ง ํ ์คํธ a์ ํค๋ฅผ ๊ฐ๊ณ ์์ด์ ํธ b๋ ํ ์คํธ b์ ํค๋ฅผ ๊ฐ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ด๊ฒ์ด ํ์ํ์ง ์๋ค๋ฉด ํ๋ ์ฝ๋ฉ ๋ tmp ํ์ ๊ด์ฐฎ์ต๋๋ค.
gpg-agent ์ฃฝ์ด๊ธฐ
์ฒ์ ๋ฌธ์ ๋ฅผ ์กฐ์ฌ ํ ๋ ์์ gpg-agent๋ฅผ ์ข ๋ฃํ๋ ์์ ๋ฐฉ๋ฒ์ gpg ํ ๋๋ ํ ๋ฆฌ๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด๋ผ๊ณ ์ธ๊ธ ํ ์น ์ฌ์ดํธ (์์ ๋งํฌ ๋จ)๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค.
๋ฐ๋ผ์ GNUPGHOME์ /tmp/elektra_tests/gpg
ํ๊ณ ํ
์คํธ ์ ๋ฆฌ ์ค์์ด tmp ๋๋ ํ ๋ฆฌ๋ฅผ ์ญ์ ํ๋ฉด ๊ด์ฐฎ์ ๊ฒ์
๋๋ค.
๋ฐ๋ผ์ GNUPGHOME์ / tmp / elektra_tests / gpg๋ก ์ค์ ํ๊ณ ํ ์คํธ ์ ๋ฆฌ ์ค์์ด tmp ๋๋ ํ ๋ฆฌ๋ฅผ ์ญ์ ํ๋ฉด ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค.
ํจ๊ณผ๊ฐ์๋ค! ์ด ์์ ์ฌํญ์ crypto
๋ฐ fcrypt
ํ
์คํธ ์ผ์ด์ค์ ํตํฉํ๊ฒ ์ต๋๋ค. ํ ๊ฐ์ฌํฉ๋๋ค!
์๋ํ๋ ํ๋กํ ํ์ ์ด ์์ต๋๋ค. ๋ด์ผ PR์ด์ต๋๋ค.
# 2056๋ก ์์ ํด์ผํฉ๋๋ค. ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํ๋ฉด ๋ค์์ฌ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
ํ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ณต์ ํ๋ฉด ํ ์คํธ๋ฅผ ๋ณ๋ ฌ๋ก ์คํํ์ง ๋ชปํ ์๋ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ค์ GNUPGHOME์ ์ญ์ ํด์ผํฉ๋๋ค (๋ก๊ทธ์ธ ํ ์ฌ์ฉ์ ๊ถํ์ ๋ํด ๋๋ฆฐ pgp-agent ์๋ต ํธ์ถ์ ์ํ์ง ์์ต๋๊น?).
๊ทธ๋ฆฌ๊ณ ๋์ ์์คํ ์ด GNUPGHOME์์ ๋ฆด๋ ์ดํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๊ธฐ์กด ํ๊ฒฝ์ ์ ์ฅํ๊ณ ํ ์คํธ ํ ์๋์ผ๋ก ๋ณต์ํด์ผํฉ๋๋ค.
ํ ๋ฐ ๋ฌผ๋ฌ์์ ์ด๋ฌํ ํ ์คํธ๊ฐ ํ ์คํธ ์๋ฒ ํ๊ฒฝ๋ฟ๋ง ์๋๋ผ ์ฌ์ฉ์ ์์คํ ์ ์ด๋ค ์ํฅ์ ๋ฏธ์น ์ ์๋์ง ์ดํด๋ณผ ์ ์๋ค๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.