溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Fedora中怎么使用Gnu PG代理

發(fā)布時間:2021-07-24 11:59:36 來源:億速云 閱讀:166 作者:chen 欄目:系統(tǒng)運維

本篇內容主要講解“Fedora中怎么使用Gnu PG代理”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Fedora中怎么使用Gnu PG代理”吧!

有時使用某個應用程序的時候,你需要非常頻繁地使用你的 Gnu PG 密鑰,這就意味著你需要多次輸入密匙解密口令。相當多的應用程序支持將口令(密碼)緩存起來方便用戶使用。但是出于安全的目的,卻不能讓緩存的口令(密碼)在多個程序之間交叉使用。不過,Gnu PG 提供了很安全的密碼緩存方式,也即 Gnu PG 的代理 gpg-agent。通過它,多個應用程序可以共用 Gnu PG 密匙的解密口令。如果你在使用某個應用程序的時候輸入了密匙解密口令,其他應用程序可以在一段時間內不用再請求輸入口令也能解密 Gnu PG 密鑰。下面就來談談如何設置 Gnu PG 的代理。

盡管我們不談論 Gnu PG 公匙、密匙的生成與使用過程,但是使用 Gnu PG,***步當然是安裝它:

$ sudo yum install gnupg

通常,Gnu PG 程序本身就有代理功能。不過在圖形界面下,Gnu PG 的代理功能需要用 pinentry 來開啟,所以需要先在 Linux 中安裝 pinentry 程序。

$ sudo yum install pinentry-gtk

現(xiàn)在創(chuàng)建 gpg-agent 的配置文件:

$ cat > ~/.gnupg/gpg-agent.conf << EOF 
# PIN entry Program
#pinentry-program /usr/bin/pinentry-curses
#pinentry-program /usr/bin/pinentry-qt4
#pinentry-program /usr/bin/pinentry-kwallet
pinentry-program /usr/bin/pinentry-gtk-2
# Keyboard control
no-grab
# Cache timeout: 3 hours
default-cache-ttl 10800
#default-cache-ttl-ssh 10800
EOF

這個配置指明了 pinentry 程序、口令緩存的超時時間等等。接著激活 Gnu PG 的代理能力,這只要使用下面這一行即可

$ echo "gpg-agent" >> ~/.gnupg/gpg.conf

這一行告訴 Gnu PG 在需要密碼時使用 gpg-agent,但前提是需要 gpg-agent 事先已經工作。運行 gpg-agent 的方法很簡單:

$ eval $(gpg-agent --daemon)

停止 gpg-agent 的方法是:

$ pkill -u "$USER" gpg-agent

為了讓 gpg-agent 的使用更加方便,我們自然希望它能夠隨機器啟動而自動工作,這可通過在 /etc/profile.d/ 中作如下的配置來實現(xiàn)

$ sudo cat > /etc/profile.d/gpg-agent.sh << EOF
#!/bin/sh
envfile="${HOME}/.gnupg/gpg-agent.env"
if test -f "$envfile" && kill -0 $(grep GPG_AGENT_INFO “$envfile" |cut -d: -f 2) 2>/dev/null; then
     eval "$(cat :$envfile")"
else
     eval "$(gpg-agent --daemon --write-env-file "$envfile")"
fi
export GPG_AGENT_INFO # the env file does not contain the export statement
EOF
$ sudo chmod 755 /etc/profile.d/gpg-agent.sh

以上的設置使得每位登錄 Linux 的用戶自動啟用 gpg-agent。一般而言,一個會話只允許開啟一個 gpg-agent 進程。關于這一點,我們可以從上面的配置中可以看到。如果我們只希望為某個用戶啟用 gpg-agent,可在 ~/.xprofile、~/.xsession 或者 ~/.xinitrc 中添加下面這一行,這取決于我們使用的圖形界面的啟動方式,例如:

$ echo 'eval "$(gpg-agent --daemon)"' >> ~/.xprofile

如果用戶不使用圖形界面的話,也可以將上面這一行寫入 ~/.bash_profile。通過前面這些設置便能自動啟動 gpg-agent 了。關于 gpg-agent 的更多設置,請自行參看 gpg-agent 的手冊頁

$ man gpg-agent

實際上,從手冊頁中可以看到,gpg-agent 還可以作為 ssh-agent,這只需要在命令行 gpg-agent 中增加 --enable-ssh-support 選項即可。下面給出一個自動作為 ssh-agent 與 gpg-agent 的配置:

$ cat >> ~/.bash_profile << EOF
#!/bin/sh
# Start the GnuPG agent and enable OpenSSH agent emulation
gnupginf="${HOME}/.gpg-agent-info"
if pgrep -u "${USER}" gpg-agent >/dev/null 2>&1; then
    eval `cat $gnupginf`
    eval `cut -d= -f1 $gnupginf | xargs echo export`
else
    eval `gpg-agent -s --enable-ssh-support --daemon`
fi
EOF

值得指出的是,Gnome 桌面自身提供的 Gnome-keyring 也整合了 gpg-agent 功能,這取決于 Gnome-keyring 包編譯過程有沒有開啟 gpg-agent 選項。如果我們想禁用 Gnome-keyring 的 gpg-agent 功能,除去修改源碼的編譯選項之外,還可作如下操作來實現(xiàn)

$ cp /etc/xdg/autostart/gnome-keyring-gpg.desktop ~/.config/autostart/gnome-keyring-gpg.desktop
$ echo "X-GNOME-Autostart-enabled=false" >> ~/.config/autostart/gnome-keyring-gpg.desktop

如果只是想臨時禁用 Gnome-keyring,可執(zhí)行

$ sudo kill $GNOME_KEYRING_PID

到此,相信大家對“Fedora中怎么使用Gnu PG代理”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI