Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Jan 2001 16:30:45 +1100 (EST)
From:      gnb@itga.com.au
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   bin/24521: ssh-agent exits when authenticating DSA via v1 Auth forwarding
Message-ID:  <200101220530.f0M5UjR92920@hellcat.itga.com.au>

next in thread | raw e-mail | index | archive | help


>Number:         24521
>Category:       bin
>Synopsis:       ssh-agent exits when authenticating DSA via v1 Auth forwarding
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jan 21 21:40:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Gregory Bond
>Release:        FreeBSD 4.2-STABLE i386
>Organization:
ITG Australia Limited
>Environment:

I'm running 4.2-Stable, with system-supplied OpenSSH:
	SSH Version OpenSSH_2.3.0, protocol versions 1.5/2.0.
	Compiled with SSL (0x0090600f).

Plus OpenSSH on Solaris:
	SSH Version OpenSSH_2.2.0p1, protocol versions 1.5/2.0.
	Compiled with SSL (0x0090581f).

[I Need to use solaris hosts for this demo as I don't have enbough 4.2
boxes to use FreeBSD for each step!]

>Description:

I run my desktop with ssh-agent on FreeBSD 4.2.  The agent stores
an RSA key and a DSA key, as some of the hosts I need to connect to 
still only have SSH1 capability.  I use this to slogin to various machines
of various unix flavours without needing to type passwords.  Auth forwarding
is on for all these links.

If I slogin to a Solaris host running OpenSSH_2.2.0p1 in Protocol
V1 mode with auth forwading enabled ("lightning" in this example,
set by my ssh_config), then from that machine attempt to slogin to
another machine running the same OpenSSH_2.2.0p1 version but using
the version 2 protocol ("slink" in this example), then my ssh-agent
exits.  The second slogin gets an error message:
	Authentication response too long: 1651861094

I ran truss on the ssh-agent and it appears to be deliberately exiting with
"exit(-1)", rather than coredumping, but no error messages are visible:

(null)()					 = 1 (0x1)
accept(0x3,0xbfbfef28,0xbfbfef24)		 = 0 (0x0)
fcntl(0x0,0x4,0x4)				 = 0 (0x0)
select(0x4,0xbfbff4c4,0xbfbff444,0x0,0x0)	 = 1 (0x1)
read(0x0,0xbfbfef94,0x400)			 = 5 (0x5)
select(0x4,0xbfbff4c4,0xbfbff444,0x0,0x0)	 = 1 (0x1)
write(0,0x8055000,9)				 = 9 (0x9)
select(0x4,0xbfbff4c4,0xbfbff444,0x0,0x0)	 = 1 (0x1)
accept(0x3,0xbfbfef28,0xbfbfef24)		 = 1 (0x1)
fcntl(0x1,0x4,0x4)				 = 0 (0x0)
select(0x4,0xbfbff4c4,0xbfbff444,0x0,0x0)	 = 1 (0x1)
read(0x1,0xbfbfef94,0x400)			 = 0 (0x0)
shutdown(0x1,0x2)				 = 0 (0x0)
close(1)					 = 0 (0x0)
select(0x4,0xbfbff4c4,0xbfbff444,0x0,0x0)	 = 1 (0x1)
accept(0x3,0xbfbfef28,0xbfbfef24)		 = 1 (0x1)
fcntl(0x1,0x4,0x4)				 = 0 (0x0)
select(0x4,0xbfbff4c4,0xbfbff444,0x0,0x0)	 = 1 (0x1)
read(0x1,0xbfbfef94,0x400)			 = 5 (0x5)
break(0x805c000)				 = 0 (0x0)
break(0x805d000)				 = 0 (0x0)
select(0x4,0xbfbff4c4,0xbfbff444,0x0,0x0)	 = 1 (0x1)
write(1,0x805a000,477)				 = 477 (0x1dd)
select(0x4,0xbfbff4c4,0xbfbff444,0x0,0x0)	 = 1 (0x1)
accept(0x3,0xbfbfef28,0xbfbfef24)		 = 2 (0x2)
fcntl(0x2,0x4,0x4)				 = 0 (0x0)
select(0x4,0xbfbff4c4,0xbfbff444,0x0,0x0)	 = 1 (0x1)
read(0x2,0xbfbfef94,0x400)			 = 954 (0x3ba)
write(2,0xbfbfe2ac,53)				 = 53 (0x35)
lstat("/tmp/ssh-ELr48725/agent.48725",0xbfbfed14) = 0 (0x0)
unlink(0x804f3a0)				 = 0 (0x0)
rmdir(0x804f7a0)				 = 0 (0x0)
sigprocmask(0x1,0x28060720,0xbfbfed54)		 = 0 (0x0)
sigprocmask(0x3,0x28060730,0x0)			 = 0 (0x0)
exit(0xff)					process exit, rval = 65280

>How-To-Repeat:

Script started on Mon Jan 22 16:17:02 2001
hellcat$ ssh-agent bash
hellcat$ ssh-add 
Need passphrase for /home/users/gnb/.ssh/identity
Enter passphrase for gnb@hellcat.itga.com.au: 
Identity added: /home/users/gnb/.ssh/identity (gnb@hellcat.itga.com.au)
hellcat$ ssh-add ~/.ssh/id_dsa
Need passphrase for /home/users/gnb/.ssh/id_dsa
Enter passphrase for /home/users/gnb/.ssh/id_dsa: 
Identity added: /home/users/gnb/.ssh/id_dsa (/home/users/gnb/.ssh/id_dsa)
hellcat$ ssh-add -l
1024 8b:fc:7b:f5:1d:c5:0b:5d:46:7d:e4:fb:7b:dc:cb:20 gnb@hellcat.itga.com.au
1024 89:b9:33:14:f8:bd:58:90:c6:bd:f8:3f:aa:e4:0e:71 /home/users/gnb/.ssh/id_dsa
hellcat$ slogin lightning
Last login: Mon Jan 22 16:17:25 2001 from hellcat.itga.co
Sun Microsystems Inc.   SunOS 5.6       Generic August 1997
lightning$ ssh-add -l
1024 8b:fc:7b:f5:1d:c5:0b:5d:46:7d:e4:fb:7b:dc:cb:20 gnb@hellcat.itga.com.au
1024 89:b9:33:14:f8:bd:58:90:c6:bd:f8:3f:aa:e4:0e:71 /home/users/gnb/.ssh/id_dsa
lightning$ slogin slink
Authentication response too long: 1651861094
lightning$ ssh-add -l
Error reading response length from authentication socket.
Broken Pipe
lightning$ logout
Connection to lightning.itga.com.au closed.
hellcat$ ssh-add -l
Could not open a connection to your authentication agent.
hellcat$ slogin lightning
Enter passphrase for RSA key 'gnb@hellcat.itga.com.au': 
Bad passphrase.
Permission denied.
hellcat$ exit
hellcat$ exit

Script done on Mon Jan 22 16:18:03 2001

>Fix:

	Don't attempt to do V2/DSA auth agent over a V1 link.

	I'm not expecting this to actually work, but it'd be very nice
	if the ssh-agent didn't die, forcing me to re-login all over again
	(or type passwords for the rest of the session).


>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200101220530.f0M5UjR92920>