There’s a known issue with the SSH implementation in the iLO firmware for HP Proliant servers (specifically G2 and G3) and OpenSSH 5.1p1. There was a thread on the OpenSSH developers list that referenced this problem and suggested a solution, but it doesn’t seem to be a sure fix.
This problem is present on my DL360 G2’s which are running the 1.84 2006-05-05 version of the iLO firmware (iLO 1.84 pass9) with the P26 2004.05.01 version of the system firmware. I also see the issue on a DL380G3 running iLO 1.92 2008.04.24 and system firmware P29 2004.09.15. The only way that I can reliably get into the iLO is by SSHing from a box with an older version of SSH, such as 4.2p1.
Most of the things that I could find online referenced unsetting the
LANG environment variable (
unset LANG) and then SSHing with agent forwarding disabled (
ssh -a hostname-ilo).
Unfortunately this combination doesn’t seem to do it for me.
I happened to stumble by this post to the debian-ssh mailing list, which suggested that shortening the new OpenSSH version string fixed the problem.
I was able to confirm that the version string is, in fact, the sole problem. I downloaded the source of OpenSSH 5.2p1 and, with the following small patch to version.h, managed to get SSH working to the iLO perfectly:
--- openssh-patched/version.h 2009-06-12 00:35:48.000000000 -0400 +++ openssh-5.2p1/version.h 2009-02-22 19:09:26.000000000 -0500 @@ -1,6 +1,6 @@ /* $OpenBSD: version.h,v 1.55 2009/02/23 00:06:15 djm Exp $ */ -#define SSH_VERSION "OpenSSH" +#define SSH_VERSION "OpenSSH_5.2" -#define SSH_PORTABLE "" +#define SSH_PORTABLE "p1" #define SSH_RELEASE SSH_VERSION SSH_PORTABLE
I patched version.h, ran
make, and then copied the
compiled ssh binary to /usr/bin/ilossh, so that my original ssh binary
would be intact, and the ilossh binary would be left alone by RPM upgrades.