|
@@ -28,7 +28,7 @@
|
28
|
28
|
# You should have received a copy of the GNU Affero General Public License
|
29
|
29
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
30
|
30
|
|
31
|
|
-function gpg_allow_tty {
|
|
31
|
+function gpg_agent_setup {
|
32
|
32
|
gpg_username=$1
|
33
|
33
|
|
34
|
34
|
if [[ $gpg_username == 'root' ]]; then
|
|
@@ -37,6 +37,19 @@ function gpg_allow_tty {
|
37
|
37
|
echo 'GPG_TTY=$(tty)' >> /root/.bashrc
|
38
|
38
|
echo 'export GPG_TTY' >> /root/.bashrc
|
39
|
39
|
fi
|
|
40
|
+ if ! grep -q 'use-agent' /root/.gnupg/gpg.conf; then
|
|
41
|
+ echo 'use-agent' >> /root/.gnupg/gpg.conf
|
|
42
|
+ fi
|
|
43
|
+ if ! grep -q 'pinentry-mode loopback' /root/.gnupg/gpg.conf; then
|
|
44
|
+ echo 'pinentry-mode loopback' >> /root/.gnupg/gpg.conf
|
|
45
|
+ fi
|
|
46
|
+ if [ ! -f /root/.gnupg/gpg-agent.conf ]; then
|
|
47
|
+ touch /root/.gnupg/gpg-agent.conf
|
|
48
|
+ fi
|
|
49
|
+ if ! grep -q 'allow-loopback-pinentry' /root/.gnupg/gpg-agent.conf; then
|
|
50
|
+ echo 'allow-loopback-pinentry' >> /root/.gnupg/gpg-agent.conf
|
|
51
|
+ fi
|
|
52
|
+ echo RELOADAGENT | gpg-connect-agent
|
40
|
53
|
else
|
41
|
54
|
if ! grep -q 'GPG_TTY' /home/$gpg_username/.bashrc; then
|
42
|
55
|
echo '' >> /home/$gpg_username/.bashrc
|
|
@@ -44,6 +57,19 @@ function gpg_allow_tty {
|
44
|
57
|
echo 'export GPG_TTY' >> /home/$gpg_username/.bashrc
|
45
|
58
|
chown $gpg_username:$gpg_username /home/$gpg_username/.bashrc
|
46
|
59
|
fi
|
|
60
|
+ if ! grep -q 'use-agent' /home/$gpg_username/.gnupg/gpg.conf; then
|
|
61
|
+ echo 'use-agent' >> /home/$gpg_username/.gnupg/gpg.conf
|
|
62
|
+ fi
|
|
63
|
+ if ! grep -q 'pinentry-mode loopback' /home/$gpg_username/.gnupg/gpg.conf; then
|
|
64
|
+ echo 'pinentry-mode loopback' >> /home/$gpg_username/.gnupg/gpg.conf
|
|
65
|
+ fi
|
|
66
|
+ if [ ! -f /home/$gpg_username/.gnupg/gpg-agent.conf ]; then
|
|
67
|
+ touch /home/$gpg_username/.gnupg/gpg-agent.conf
|
|
68
|
+ fi
|
|
69
|
+ if ! grep -q 'allow-loopback-pinentry' /home/$gpg_username/.gnupg/gpg-agent.conf; then
|
|
70
|
+ echo 'allow-loopback-pinentry' >> /home/$gpg_username/.gnupg/gpg-agent.conf
|
|
71
|
+ fi
|
|
72
|
+ su -c "echo RELOADAGENT | gpg-connect-agent" - $gpg_username
|
47
|
73
|
fi
|
48
|
74
|
}
|
49
|
75
|
|