[NEWSboard IBMi Forum]
Seite 2 von 2 Erste 1 2
  1. #13
    Registriert seit
    Sep 2004
    Beiträge
    327
    Hallo Andreas,
    ich weiß nicht ob ich erwähnt habe, dass die AS/400 nicht als FTP Server fungieren soll. Es geht darum auf ferne FTP Server Dateien zu übertragen und zu empfangen. Bei SSH habe ich gelesen, dass die AS/400 mit ihren eigenen Bordmitteln nur public, also ohne User und Password funktioniert. Deshalb war die Überlegung OPENSSH zu installieren.
    Ich fasse mal kurz zusammen:
    - für SSH (SFTP) sollte man OPENSSH benutzen
    - für FTPS mit Zertifikat kann ich die eigenen Bordmittel der AS/400 nutzen (DCM)

    Die Frage ist nun, macht man das so direkt auf der AS/400 oder sollte man sich einem Tool bedienen bzw die FTP Sache komplett von außen steuern?
    Danke.
    Gruß Klaus

  2. #14
    Registriert seit
    Oct 2013
    Beiträge
    171

    kein Grund, das nicht auf dem IBM i zu tun.

    Wir übertragen und empfangen erfolgreich per sFTP Dateien mit dem in der QShell-Umgebung verfügbaren sFTP. Das Einzige, was da nicht geht, ist die Verwendung eines Kennworts. Man identifiziert sich mit dem Zertifikat und einer User-Id und kann das auch skripten.
    Es besteht kein Grund, sich nur wegen sFTP Probleme ganz anderer Art einzutreten. So schwer ist es nicht; Andreas hat schon viel beschrieben.

    Der Haupt-Unterschied ist der Aufruf:

    Code:
    QSH CMD('/QOpenSys/usr/bin/sftp -b /tmp/meinSkript.txt -o "IdentityFile=/tmp/meinKey.rsa" meinUser@fernesSystem')
    Über die Environment-Variable QIBM_QSH_CMD_OUTPUT kann man den Output in eine Datei umleiten und die dann auf Erfolg untersuchen.


    All das ist ein bisschen komisch, und weniger komfortabel als gewohnt, aber wohl auch der Grund, warum man https und nicht shttp verwendet. :-)

  3. #15
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von itec01 Beitrag anzeigen
    - für FTPS mit Zertifikat kann ich die eigenen Bordmittel der AS/400 nutzen (DCM)
    Genau beim FTP Command gibst du einfach den Parameter PORT(*SECURE) mit an.
    Ist das Zertifikat ein self-signed-certificate (also nicht von einer offiziellen Zertifizierungsstelle signiert) kannst du es in den Trusted Key Store (bei IBM i der DCM) hinzufügen.
    Dadurch sagst du dem System, dass du dem Zertifikat trotzdem vertrauen schenken willst.

    Und bei bei SFTP würde ich ebenfalls die eigenen Boardmitteln benützen.

  4. #16
    Registriert seit
    Sep 2004
    Beiträge
    327
    Zitat Zitat von andreaspr@aon.at Beitrag anzeigen
    Ist das Zertifikat ein self-signed-certificate (also nicht von einer offiziellen Zertifizierungsstelle signiert) kannst du es in den Trusted Key Store (bei IBM i der DCM) hinzufügen.
    Dadurch sagst du dem System, dass du dem Zertifikat trotzdem vertrauen schenken willst.

    Und bei bei SFTP würde ich ebenfalls die eigenen Boardmitteln benützen.
    Was ist wenn es nicht ein self-signed-certficate ist?
    Ich frage deshalb, weil wir viele Partner wie Speditionen und Lieferanten über FTP bedienen, daher muss eigentlich jede Möglichkeit funktionieren und da bin ich mir bei der AS/400 Variante eben nicht sicher.

  5. #17
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Wenn es kein self-signed ist, ist es ein gültiges Zertifikat. Das gleiche Prinzip wie bei einer HTTPS (Secure) verbindung.
    Wenn ein gültiges Zertifikat vorhanden ist, hast du ein grünes Symbol im Browser.
    Wenn's ein self-signed ist, hast ein rotes ... und musst bei manchen Browsern sogar bestätigen, dass du diese Seite trotzdem öffnen willst.
    Bei FTPS ist es das gleiche. Da Prüft das FTP-Programm ob's ein gültiges Zertifikat ist. Wenn nicht, muss es im DCM hinterlegt sein, ansonsten verweigert der FTP-Client die Verbindung weil nicht sichergestellt wurde, dass der Server auch wirklich der ist für den er sich ausgibt.

  6. #18
    Registriert seit
    Sep 2004
    Beiträge
    327
    Letzte Frage (hoffentlich):
    Bei SFTP (SSH) habe ich verstanden, dass die AS/400 hier keinen Login mit User und Password hinbekommt. Wieso ist das eigentlich so und gibt es nicht doch noch eine Variante?
    Danke.
    Gruß Klaus

  7. #19
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Wieso?
    Du wirst doch mit User/Kennwort abgefragt?

    Für eine Batchautomatisierung brauchst du eine Textdatei (PF), die du mit den Eingaben befüllst und per OVRDBF STDIN TOFILE(TEXTINPUT) an FTP übergibst.
    Ebenso kannst du STDOUT und STDERR in eine PF umleiten.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #20
    Registriert seit
    Sep 2004
    Beiträge
    327
    Für normal FTP machen wir das auch so. Nur für SFTP, siehe Kommentar #14 soll es ja nicht gehen.

  9. #21
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Mit den neueren Releases (V7ff) geht das auch mit dem FTP-Kommando (schau mal per F10).
    Ansonsten läuft ja sftp über QSH oder PASE und kann via Shell-Script genauso gescripted werden.
    Es gibt da verschiedene Ansätze aus der Unix-Welt die weitestgehend auch für QSH gelten.
    Vielleicht klappt ja halt:

    HTML-Code:
    sftp .... <EingabeText  >LogText
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #22
    Registriert seit
    May 2007
    Beiträge
    295
    Guten Morgen.
    Ja für sFTP aus der Unix-Welt gibt es zigg Varianten.
    Ich verwende hierfür Expect. Kann man schön scripten UND auch mit User & Passwort arbeiten:

    Code:
                 ChgVar     &Cmd Value('PATH=$PATH:/usr/local/bin: +
                              && expect -f /Expect/Scripts/' *TCat &Script)
    
                 ChgVar     &DirFile Value(&Dir *TCat '/' *TCat &File)
    
                 AddEnvVar EnvVar(SSH_FILE) Value(&DirFile) Replace(*Yes)
                 AddEnvVar EnvVar(SSH_USER) Value(&User) Replace(*Yes)
                 AddEnvVar EnvVar(SSH_HOST) Value(&Host) Replace(*Yes)
                 AddEnvVar EnvVar(SSH_PASS) Value(&Pass) Replace(*Yes)
    
                 AddEnvVar EnvVar(QIBM_QSH_CMD_OUTPUT) +
                              Value('NONE') Replace(*Yes)
                 AddEnvVar EnvVar(QIBM_QSH_CMD_ESCAPE_MSG) Value(Y) +
                              Replace(*Yes)
    
                 QSH        Cmd(&Cmd)
    Code:
    #!/usr/local/bin/expect -f
    set timeout 20
    spawn sftp $env(SSH_USER)@$env(SSH_HOST)
    expect {
    default {exit 2}
    "continue connecting (yes/no)?" {send "yes\n"; exp_continue}
    "assword:" {send "$env(SSH_PASS)\n"; exp_continue}
    "sftp>"
    }
    send "put myfile.csv\n"
    expect {
    default {exit 2}
    "not found" {exit 3}
    "sftp>"
    }
    send "quit\n"
    exit 0
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

Similar Threads

  1. SMS versenden
    By woodstock99 in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 08-11-17, 18:56
  2. Mails erstellen und versenden auf AS/400
    By AK1 in forum NEWSboard Programmierung
    Antworten: 18
    Letzter Beitrag: 16-02-17, 11:04
  3. Fehler -1 bei FTPS
    By posthenn in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-10-16, 12:21
  4. SFTP
    By TUM in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 20-09-16, 13:40
  5. IFS PDF Datei per Mail versenden
    By martschp in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 13-11-13, 09:21

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •