PDA

View Full Version : nicht lesbarer Text in known_hosts Datei



itec01
06-01-20, 09:03
Hallo und Guten Morgen,
mit folgendem Befehl in QSH: ssh-keyscan -p 22 178.15.44.229 >> .ssh/known_hosts
bekomme ich den Key in die SSH Datei rein.
Auf unserem System (LANGID 65535) sieht alles wunderbar aus.
Vorne die IP Addresse und dann der key.

178.15.44.229 ssh-rsa
AAAAB3NzaC1yc2EAAAADAQ.....

Auf einem Kundensystem (LANGID 500) steht nur Müll drin.
ñ÷øKñõKôôKòòù@¢¢ˆ

Habe es gerade mit dem Program QP2TERM versucht und da funktioniert es.
Nun habe ich es auch unter QSH gemacht und siehe da, es sieht gut aus.
Woran liegt das?
Was ist der Unterschied zwischen QSH und QP2TERM?

Danke.

Gruß Klaus

Fuerchau
06-01-20, 18:45
Schau dir die CCSID der Datei an. Diese sollte auf 1252 und nicht 273 oder 65535 stehen.

itec01
08-01-20, 13:29
Sorry für die späte Meldung. Wie kann ich das ermitteln? Bringt mir das überhaupt etwas? Die Datei wird automatisch vom 1. SSH Befehl angelegt und bei QP2TERM funktioniert es ja.
Möchte es nur verstehen, was hier das Problem ist.
Danke.
Gruß Klaus

Fuerchau
08-01-20, 13:37
Das Kommando heißt DSPATR.
Du kannst dir den Inhalt auf 2 Arten ansehen:
1. in Windows, da muss der Code in ASCII/ANSI 1252 sein. Hat die Datei z.B. 273 (EBCDIC) siehst du nur Müll.
2. per EDTF auf der AS/400
Zu 2. muss dein Job eine andere CCSID als 65535 (*hex) haben, da sonst der Inhalt nicht für das 5250-Terminal von 1252 übersetzt werden kann. Mit einer CCSID 273 gehts wieder, da auch ohne Übersetzung ja nun EBCDIC erwartet wird.

itec01
08-01-20, 14:13
Danke, perfekt. Mit EDTF habe ich nun folgendes heraus gefunden:
Erzeugung mit QSH: CCSID = 500
Erzeugung mit QP2TERM: CCSID = 819
Sehr seltsam. Kann man dies unter QSH beeinflussen oder muss ich temporär den Job unter 273 laufen lassen? Das wäre echt blöd.
Danke.

Fuerchau
08-01-20, 18:49
Auch 819 ist eigentlich nicht korrekt, entspricht aber ANSI ohne die Hex-Werte 80-9F. Diese sind erst mit 1252 hinzugekommen.
Wenn du den Namen der Datei vorher weißt, kann man die erstellen und mit CHGATR auf 1252 setzen.
Beim späteren Replace wird die CCSID übernommen.

QP2TERM ist definitiv ANSI-orientiert und setzt deshalb die CCSID.

itec01
10-01-20, 08:18
super, vielen Dank für die Erklärung und die Hilfe.
Eine kleine Anmerkung habe ich noch:
Da in die Known_hosts-Datei eine Representation des Public Keys in Base64-Format speichern wird und laut Base64-Definition (https://en.wikipedia.org/wiki/Base64) werden nur Zeichen zwischen 20-7B verwendet, werden Zeichen aus dem Bereich 80-9F nicht verwendet.Das gleiche gilt auf für die Domain bzw. IP, die auch in known_host eingetragen wird.
Daher könnte man es auch auf 819 stehen lassen aber 1252 ist sicherlich besser.

Fuerchau
10-01-20, 11:37
Da hast du wohl recht.
Zu beachten ist, CHGATR wandelt die Daten nicht um sondern setzt nur das Attribut. Dies kann und wird unerwünschte Effekte haben.
Für die Umwandlung gibt es den QSH-Befehl iconv (analog zur C-Funktion).

Übrigens: mit "touch -C 1252 <ccsid>Name" kann man eine Datei in QSH ebenso erstellen.</ccsid>