Hi,
Couple of comments inline.
On Sun, Jul 21, 2013 at 03:16:28AM +0200, Alexander Hall wrote:
> This is an attempt to make the ssh-* man pages more exact regarding
> SSH_ASKPASS, when used for ssh-agent key confirmation.
>
> The point I'm making is that the relevant SSH_ASKPASS environment
> variable is not that of ssh-add(1) (apart from when ssh-add is actually
> asking for a passphrase).
>
> On a sidenote, I think I'd prefer a 'SSH_CONFIRM' variable or somesuch
> (falling back to SSH_ASKPASS), but maybe we don't want to pollute the
> environment any further.
>
> /Alexander
>
>
> Index: ssh-add.1
> ===================================================================
> RCS file: /cvs/src/usr.bin/ssh/ssh-add.1,v
> retrieving revision 1.58
> diff -u -p -r1.58 ssh-add.1
> --- ssh-add.1 3 Dec 2012 08:33:02 -0000 1.58
> +++ ssh-add.1 21 Jul 2013 01:09:49 -0000
> @@ -84,14 +84,10 @@ to work.
> The options are as follows:
> .Bl -tag -width Ds
> .It Fl c
> -Indicates that added identities should be subject to confirmation before
> +Indicates that
> +.Xr ssh-agent 1
> +should ask for confirmation before added identities are
> being used for authentication.
^^^^^
Zap "being" from above.
> -Confirmation is performed by the
> -.Ev SSH_ASKPASS
> -program mentioned below.
> -Successful confirmation is signaled by a zero exit status from the
> -.Ev SSH_ASKPASS
> -program, rather than text entered into the requester.
> .It Fl D
> Deletes all identities from the agent.
> .It Fl d
> Index: ssh-agent.1
> ===================================================================
> RCS file: /cvs/src/usr.bin/ssh/ssh-agent.1,v
> retrieving revision 1.53
> diff -u -p -r1.53 ssh-agent.1
> --- ssh-agent.1 21 Nov 2010 01:01:13 -0000 1.53
> +++ ssh-agent.1 21 Jul 2013 01:09:49 -0000
> @@ -161,6 +161,18 @@ Later
> .Xr ssh 1
> looks at these variables and uses them to establish a connection to the
> agent.
> .Pp
> +If confirmation before using a key is requested by
> +.Xr ssh-add 1 ,
> +it is performed by the program specified in the
> +.Ev SSH_ASKPASS
> +environment variable, or
> +.Xr ssh-askpass 1
> +if
> +.Ev SSH_ASKPASS
> +is not set.
> +Successful confirmation is signaled by a zero exit status, and that the
^^^^
Maybe drop the "that" from above.
> +first line of the program's output is empty or the string "yes".
> +.Pp
However, the sentence still reads awkwardly. Are you trying to
say the requirement is:
if (an_exit_status == 0 &&
(output_string == "" || output_string == "yes"))
If so, maybe a better wording would be:
Successful confirmation is signaled by a zero exit status,
and the first line of the program's output SHOULD be either
empty or the string "yes."
--patrick
> The agent will never send a private key over its request channel.
> Instead, operations that require a private key will be performed
> by the agent, and the result will be returned to the requester.
> Index: ssh_config.5
> ===================================================================
> RCS file: /cvs/src/usr.bin/ssh/ssh_config.5,v
> retrieving revision 1.166
> diff -u -p -r1.166 ssh_config.5
> --- ssh_config.5 27 Jun 2013 14:05:37 -0000 1.166
> +++ ssh_config.5 21 Jul 2013 01:09:49 -0000
> @@ -286,7 +286,7 @@ will cause ssh
> to listen for control connections, but require confirmation using the
> .Ev SSH_ASKPASS
> program before they are accepted (see
> -.Xr ssh-add 1
> +.Xr ssh-agent 1
> for details).
> If the
> .Cm ControlPath
>