On Wed, Dec 14, 2016 at 7:56 AM, Mart Raudsepp <[email protected]> wrote:
> Ühel kenal päeval, K, 14.12.2016 kell 15:35, kirjutas Andrew Savchenko:
>> On Wed, 14 Dec 2016 11:16:58 +0200 Mart Raudsepp wrote:
>> >
>> > Ühel kenal päeval, K, 14.12.2016 kell 13:08, kirjutas Sam Jorna:
>> > >
>> > > On Mon, Dec 12, 2016 at 02:35:28PM +1100, Sam Jorna wrote:
>> > > >
>> > > >
>> > > > On Mon, Dec 12, 2016 at 09:34:21AM +0700, [email protected]
>> > > > wrote:
>> > > > >
>> > > > >
>> > > > > On Sun, 11 Dec 2016, Kristian Fiskerstrand wrote:
>> > > > > >
>> > > > > >
>> > > > > > On 12/11/2016 03:13 PM, [email protected] wrote:
>> > > > > > >
>> > > > > > >
>> > > > > > > gpg: signing failed: Inappropriate ioctl for device
>> > > > > > this might indicate a want for export GPG_TTY=$(tty)
>> > > > > I don't understand what has really happened. I removed my
>> > > > > last
>> > > > > commit, an
>> > > > > attempt to commit it again failed with gpg: signing failed.
>> > > > > Then
>> > > > > I logged
>> > > > > out of the box on which I have the git tree (I log in this
>> > > > > box
>> > > > > via ssh),
>> > > > > and logged in again. After that the commit succeeded.
>> > > >
>> > > > I was also getting some odd issues with commit signing, though
>> > > > it
>> > > > seemed
>> > > > to settle for me when I switched to pinentry-curses (since I
>> > > > use
>> > > > awesome), so I figured it was probably a local issue. Perhaps
>> > > > there's a
>> > > > wider problem here?
>> > >
>> > > If anyone else is getting this, it seems to be resolved by
>> > > exporting
>> > > GPG_TTY=$(tty) either immediately before attempting to sign or in
>> > > your
>> > > shell ~/.*rc file.
>> >
>> > I'd consider this a temporary workaround. The real issue would just
>> > be
>> > workarounded with this, which is nice to get something committed,
>> > but
>> > not so nice longterm.
>> > I had similar issues, but it turned out some pinentry issues for me
>> > iirc, so properly fixed by now and not needing such hackery
>> > anymore.
>>
>> This is not a workaround, but officially recommended practice, from
>> man gpg-agent:
>>
>> You should always add the following lines to your .bashrc or
>> whatever initialization file is used for all shell invocations:
>>
>>     GPG_TTY=$(tty)
>>     export GPG_TTY
>
> Then the packages or eselect pinentry or whatever should be taking care
> of it, not have users have to mess with .bashrc to have stuff work.

This is not practical.

Adding it to the global /etc/bashrc is a bad idea. It would slow down
every shell startup (fork/exec), even for users who do not actively
use gpg (like root).

Also, there is no way to know what shell each gpg user will be using.

Reply via email to