mystery ssh

Hiamal H. Llanos hiamal.llanos at nic-se.se
Thu Aug 24 14:15:32 CEST 2006


tor 2006-08-24 klockan 12:30 +0200 skrev Noah Williamsson:
> BSD Users Sweden <bus at stacken.kth.se> on torsdag 24 augusti 2006 at
> 11.52 +0000 wrote:
> tor 2006-08-24 klockan 09:53 +0200 skrev Noah Williamsson:
> > BSD Users Sweden <bus at stacken.kth.se> skrev den 24 augusti 2006
> > klockan 09:05 +0000:
> > Trost att jag tog backup på de befintliga ssh host nycklar,
> > installerade
> > openssh-4.3.p2 från ports och kopierade in de gamla ssh host nycklar
> > tillbaks(/etc/ssh/) och till /usr/local/etc/ssh får jag "WARNING:
> > REMOTE
> > HOST IDENTIFICATION HAS CHANGED!" när jag loggar in från en annan
> > maskin. Har alldrigt råkat ut för det. 
> > Hur kan det bli så?
> > 
> > Alldeles säkert för att hostkeyn har ändrats.
> > 
> 
> Skummt. 
> Läste in hostkes från en äldre backup men får samma "fel". Ja, jag
> laddar om sshd efter varje ändring, mm. Jag kan se att nyklarna de
> samma
> både på servern och clienten. 
> Kom ihåg nu något jag läste om att md5 hashen kan ge vara olika mellan
> olika versioner och plataformar. Om fingerprinten bygger på ett md5
> hash
> kan det vara förklarningen. Jag lutar att tro att openssh 3.x och
> openssh 4.x kör olika algiritm för att kontrollera hostkeys.
> 
> Du tänker nog på en bugg med HMAC-implementation (som kunde använda
> MD5 som hashalgoritm) som fanns i OpenSSH <= 2.3.
> HMAC används för att garantera dataintegriteten mellan klient och
> servern och har, så vitt jag förstår, ingenting med det initiala
> nyckelutbytet att göra.
> 
> Jag tror inte riktigt på den förklaringen att ossh3 och 4 skulle vara
> inkompatibla på det viset.
> Själv har jag aldrig haft problem med uppgradering från 3 till 4 i
> alla fall och rent spontant så verkar det hela orimligt.
> 
> För var annars i systemet kan hostkey(s) lagras? sshd_config och
> opnessh.sh pekar ju på samma filer.
> 
> Ingenstans. De ligger i vad nu --sysconfdir sattes till när du
> installerade OpenSSH.
> Ofta är det /etc/ssh.

Stämmer och openssh 4.x från ports lägger de i /usr/local/etc/ssh.

> Där finns tre par public/private keys.
> För SSH1 heter RSA-nycklarna ssh_host_key*.
> För SSH2 heter RSA-nycklarna ssh_host_rsa_key* och DSA-nycklarna
> ssh_host_dsa_key*.

Jag har hittat "felet". Openssh 3.6 erbjuder inte rsa nyckeln, trotsa
att den finns, endast dsa hostkey. Openssh 4.3 erbjuder däremot bägge
och det var det som orsakade det felmeddelande.

Kör jag Med sshd 3.7 på servern 
Får jag "no hostkey alg" när jag kör:
ssh-keyscan -t rsa server

Kör jag däremot ssh 4.3p2 visar ssh-keyscan -t rsa en fin-fin sshkey.


> Eller så har du en gammal SSHv2 hostkey i din known_hosts i
> kombination med att du alltid använde SSHv1 när du sshade mot
> masklinen tidigare, men nu efter uppgraderingen så blir det SSHv2? 

Körede ssh 3.5p1 som följer med FreeBSD 4.11.


> Har du fler maskiner med cachad hostkey på så föreslår jag att du
> provar ssha från dem istället och ser om du får samma fel där.

Japp, samma fel.

Hur som helst så verkar jag ha löst problemet och det verkar funka :-)



Hiamal





More information about the BUS mailing list