Ich habe auf Solaris 2.7 eine ziemlich alte SSH laufen, und zwar die kommerzielle SSH1 Version 1.2.27. Die funktioniert zwar ganz prima und bewährt sich im täglichen Einsatz, aber ich möchte sie nun ersetzen durch OpenSSH 3.6.1, weil ich einen sftp-Server brauche. Den gibt es aber bei der alten SSH1 nicht.
Zur Verdeutlichung: mit SSH1 meine ich die SSH Protocol Version 1, mit OpenSSH oder SSH2 meine ich die SSH Protocol Version 2. Die beiden sind ohne weiteres erst einmal nicht kompatibel miteinander.
Nun kann aber OpenSSH die SSH1 emulieren, so dass ich mich mit einem SSH2-Client zu meinem SSH1-Server verbinden kann. Ich muss für automatisierte Verarbeitung mit einem Public-Key-Verfahren arbeiten, und auch das geht ohne Beschwerden. Das geht auch wunderschön plattformübergreifend, egal ob ich das von einer Sun aus mache oder von Linux oder von MacOSX. Geht genauso, wie wir es wünschen und lieben.
Jetzt habe ich den neuen OpenSSH-Server auf der Sun aufgesetzt, und schon geht es leider los. Mein OpenSSH-Client will sich nicht mehr per Public Key mit dem neuen Server verbinden, sondern fragt nach einem Passwort. Genau das aber kann ich bei einer automatisierten Verarbeitung nicht gebrauchen (ich will schließlich nicht nachts um drei ein Passwort eingeben und mich dann wieder pennen legen).
Allerdings habe ich einige Beobachtungen gemacht. Dazu erstmal einen Teil meiner sshd_config:
#Port 22
Protocol 2,1
#ListenAddress 0.0.0.0
#ListenAddress ::
# HostKey for protocol version 1
HostKey /etc/ssh\_host\_key # host key der SSH1 (RSA)
# HostKeys for protocol version 2
HostKey /usr/local/etc/ssh\_host\_rsa\_key # host key der SSH2 (RSA)
HostKey /usr/local/etc/ssh\_host\_dsa\_key # host key der SSH2 (DSA)
Mit dieser Konfiguration werde ich vom Server nach einem Passwort gefragt. Sorge ich dafür, dass nur SSH Protocol Version 1 eingeschaltet ist mit
Protocol 1
dann voila! geht der Scheisndreck. Ein Login oder Kopieren von files mittels scp ist ohne die Angabe eines Passworts möglich. Genau was ich wollte.
Gebe ich aber an, dass auch Protocol 2 benutzt werden soll, dann will der Kasten das Passwort wieder haben. Dabei spielt die Reihenfolge keine Rolle: Sowohl
Protocol 2,1
als auch
Protocol 1,2
ändern nichts daran, dass ich nun wieder ein Passwort vergeben muss.
Natürlich, wie immer wenns brenzlig wird, hat man auch mit man sshd und man sshd_config keine Chance. Möglicherweise raff ich die man page auch nicht vernünftig.
Hat vielleicht jemand von Euch eine Idee? Ich möchte nur ungern die Keys tauschen.
Stefan