WPS Communicate guida dell ’utente e riferimento · meccanismo supportato che consente l'accesso...

77
Guida dell’utente e riferimento a Communicate Versione 4.0 WPS Communicate guida dell’utente e riferimento Esecuzione del codice selettivo in più host Versione: 4.0.3 Copyright © 2002-2018 World Programming Limited www.worldprogramming.com

Transcript of WPS Communicate guida dell ’utente e riferimento · meccanismo supportato che consente l'accesso...

Guida dell’utente e riferimento a CommunicateVersione 4.0

WPS Communicateguida dell’utente e

riferimento

Esecuzione del codice selettivo in più host

Versione: 4.0.3Copyright © 2002-2018 World Programming Limited

www.worldprogramming.com

Guida dell’utente e riferimento a CommunicateVersione 4.0

2

Indice

Panoramica............................................................................................... 3

Installazione e configurazione................................................................4

Guida dell'utente per client.....................................................................7Concetti chiave...............................................................................................................................7Uso di WPS Communicate............................................................................................................ 7

Un programma semplice..................................................................................................... 7Uso di PROC DOWNLOAD................................................................................................ 9Uso di PROC UPLOAD.....................................................................................................11Esecuzione di sottoprogrammi in parallelo....................................................................... 13Trasferimento delle variabili della macro.......................................................................... 15

Riferimento....................................................................................................................................16Come leggere gli EBNF.................................................................................................... 16Istruzioni globali.................................................................................................................18Istruzioni del macroprocessore......................................................................................... 26Procedure...........................................................................................................................26Opzioni di sistema.............................................................................................................33

Guida all'amministrazione del sistema................................................36Autenticazione in z/OS con Telnet.............................................................................................. 36

Esempio di script di autenticazione Telnet....................................................................... 41SSH (Secure Shell) da un client Windows.................................................................................. 42

Autenticazione della password (usando PuTTY) e accesso tramite WPS........................ 44Autenticazione della chiave pubblica................................................................................ 50

SSH (Secure Shell) da un client UNIX........................................................................................64Autenticazione della password e accesso tramite WPS................................................... 64Autenticazione della chiave pubblica................................................................................ 66

Accesso singolo a Kerberos........................................................................................................ 74

Variabili di ambiente..............................................................................76

Avvisi legali............................................................................................ 77

Guida dell’utente e riferimento a CommunicateVersione 4.0

3

PanoramicaWPS Communicate consente l'esecuzione di diverse parti selezionate di logica del programma SAS indiversi host e consente il trasferimento di dati e risultati tra di loro. Può essere conveniente considerareWPS Communicate come permettere ai programmi di avvicinarsi di più ai dati su cui operano, alcontrario dello schema più tradizionale in cui i dati vengono trasferiti al programma.

In una normale sessione di WPS, tutta l’elaborazione viene eseguita in un unico host locale, perimpostazione predefinita, in modo sincrono. Può essere vantaggioso, tuttavia, eseguire diverse parti diun programma su diversi host. Ad esempio, si potrebbe avere un’applicazione che crea rapporti per cuivi è la necessità di estrarre e riepilogare alcuni dati prima di generare e distribuire i rapporti. Potrebbeavere senso eseguire l’estrazione e il riepilogo di parti del programma nell’host che archivia i dati,trasferendo i dati riepilogati nuovamente nella piattaforma locale per la generazione e la distribuzionedei rapporti.

Insieme al codice programma, è possibile caricare e scaricare i set di dati richiesti per l'elaborazioneremota dall'interno di un programma eseguito localmente. Ciò rende possibile eseguire il lavoro intensosu database in un server centrale, prima di tornare alla piattaforma locale per l'elaborazione dei risultati.

Dalla versione 3.2 in avanti, WPS Communicate ha la capacità di funzionare in modo asincrono, percui l'elaborazione iniziale in più host remoti accade in parallelo, consentendo miglioramenti significatividelle prestazioni per un'ampia gamma di carichi di lavoro.

Nota:Poiché è necessario cambiare il codice programma per individuare le parti che bisogna eseguire inmodalità remota, WPS Communicate richiede che gli utenti abbiano familiarità con il linguaggio diSAS.

Il presente manuale è suddiviso nelle seguenti sezioni:

• Installazione e configurazione (pag. 4).• La Guida dell'utente per client (pag. 7) che si rivolge agli utenti ordinari di WPS

Communicate.• La Guida all'amministrazione del sistema (pag. 36) che si rivolge ai tecnici informatici che

installano e amministrano il sistema.

Guida dell’utente e riferimento a CommunicateVersione 4.0

4

Installazione e configurazioneVi sono 3 elementi necessari per una configurazione client/server di WPS Communicate: un mezzodi autenticazione, lo stesso software WPS e sufficienti codici di licenza di WPS per supportare laconfigurazione.

AutenticazioneWPS Communicate richiede l'uso di una connessione SSH o Telnet tra il server e i computer client.Sono descritti in Guida all'amministrazione del sistema (pag. 36) i metodi di autenticazionedisponibili, inclusa l'autenticazione delle chiavi pubbliche (sia con che senza l'uso di un agenteportachiavi) e ogni altro software necessario.

Il protocollo consigliato dipende dal tipo di host a cui si è effettuata una connessione:

• Telnet (consultare Autenticazione in z/OS con Telnet (pag. 36))

Nota:Per un host z/OS, Telnet (o TN3270) è il meccanismo di connessione utilizzato più diffuso edè il metodo consigliato per la connessione a host z/OS tramite WPS Communicate. È il solomeccanismo supportato che consente l'accesso diretto a TSO (Opzione di condivisione di tempo).È possibile connettersi a z/OS mediante SSH (Secure Shell), ma questo si connette a USS (UNIXSystem Services) invece di TSO, e non è sempre configurato in sistemi z/OS.

• SSH (Secure Shell). Non è fornito in dotazione con il software WPS. Tuttavia:

1. Per un server UNIX (Linux, Solaris o AIX), è possibile utilizzare il daemon SSH incorporato.2. Per un server Windows, la funzionalità SSH di terzi è venduta separatamente da Bitvise

(consultare Guida all'amministrazione del sistema (pag. 36) per dettagli).

Nota:Bitvise SSH è l'unica funzione SSH ufficialmente supportata da World Programming per unserver Windows.

Software WPSWPS è fornito come un unico file di installazione che contiene tutte le funzionalità di WPS richiesteper l'uso con WPS Communicate, incluso WPS Workbench, Java Runtime Environment e ilcomponente per Server WPS concedibile in licenza.

Guida dell’utente e riferimento a CommunicateVersione 4.0

5

Nota:Saranno necessari i file di installazione di WPS che sono idonei per i sistemi operativi sia per il serverche per i computer client. Per esempio, se si dispone di un server Linux e di computer client Windows,sarà necessario il file di installazione Linux per il server e i file di installazione Windows appropriati (a32 o 64 bit) per i client. Consultare la guida all'installazione della piattaforma pertinente per i dettaglicompleti del processo di installazione di WPS.

Codice/i di licenza di WPSAffinché l'installazione di WPS possa eseguire un programma scritto nel linguaggio di SAS,l'applicazione di un codice di licenza di WPS deve attivare il componente Server WPS (in dotazioneseparatamente al software WPS).

Nota:Un'installazione completamente concessa in licenza di WPS è necessaria su ciascun client e suciascun server dell'host.

Riepilogo dell'installazioneDi seguito, è fornita una breve panoramica della procedura necessaria per installare e configurare unasoluzione per client/server di WPS Communicate.

Importante:La persona che installa WPS e applica i codici di licenza, deve disporre di privilegi di amministratore delsistema operativo in quei computer.

1. All'esterno di WPS, configurare ed effettuare il test della connessione SSH o Telnet tra il server ei computer client, in base alle piattaforme e i metodi di autenticazione che sono attivi nella propriasede (consultare Guida all'amministrazione del sistema (pag. 36) per dettagli).

2. Installare completamente WPS nel server o nel mainframe z/OS.

Nota:Assicurarsi di disporre del codice di licenza per l'installazione del server o per z/OS. Quando si avviaWPS in un server, verrà richiesto automaticamente di applicare la licenza. Per un mainframe z/OS,non si riceveranno prompt e sarà necessario seguire le istruzioni sull'applicazione di un codice dilicenza che è disponibile nel documento separato "Installazione e guida dell’utente di WPS per z/OS".

3. Se non è stato già fatto, installare WPS nei singoli computer client.

Nota:Assicurarsi di disporre del codice di licenza per la workstation, in modo che si possa a sua voltaapplicare ad ogni client. Quando si avvia WPS nei client, verrà richiesto automaticamente diapplicare la licenza.

Guida dell’utente e riferimento a CommunicateVersione 4.0

6

Variabili di ambienteLa configurazione delle variabili di ambiente non è necessaria prima della sessione iniziale di WPSCommunicate, ma è possibile chiedere all'amministratore di sistema di regolarli per le sessionisuccessive. Consultare Variabili di ambiente (pag. 76).

Guida dell’utente e riferimento a CommunicateVersione 4.0

7

Guida dell'utente per client

Concetti chiavePer trasferire il flusso di controllo da un programma che si esegue localmente ad un server remoto,WPS Communicate ha introdotto le seguenti due coppie di istruzioni: SIGNON ... SIGNOFF eRSUBMIT ... ENDRSUBMIT.

SIGNON e SIGNOFF devono contenere le istruzioni RSUBMIT ed ENDRSUBMIT:

SIGNON ...;...RSUBMIT;...ENDRSUBMIT;...SIGNOFF;

L'istruzione SIGNON ... è responsabile per l'avvio e l'autenticazione della sessione con il server.

Tra le istruzioni RSUBMIT ed ENDRSUBMIT, si inserisce il codice programma che si intende eseguire nelcomputer remoto.

Una volta eseguito il codice remoto, l'istruzione SIGNOFF chiude la connessione e rilascia le suerisorse.

Uso di WPS Communicate

Un programma sempliceLa presente sezione contiene un esempio di un programma di WPS Communicate molto semplice inesecuzione remota su una piattaforma Linux.

Prima di cominciare, assicurarsi che WPS Workbench sia installato e in esecuzione, e assicurarsi diaver effettuato l'accesso al server remoto utilizzando un client SSH esterno.

Guida dell’utente e riferimento a CommunicateVersione 4.0

8

Per connettersi al server remoto, questo programma usa un semplice accesso tramite password.Non è il metodo più sicuro, perché archivia un ID utente e una password in testo normale nel codicesorgente, e l'uso della Chiave pubblica, vale a dire l'autenticazione senza password, si consigliaper un uso a lungo termine (consultare Guida all'amministrazione del sistema (pag. 36)). Tuttavia,l'accesso tramite password serve per verificare che WPS Communicate stia funzionando con laconfigurazione più basilare.

1. Creare un nuovo programma in WPS Workbench come riportato di seguito:

SIGNON <servername> SSHusername="<username>"password="<password>" LAUNCHCMD="<path to WPS executable>"; RSUBMIT; %PUT &SYSHOSTNAME; %PUT 'Success with simple password sign-on';ENDRSUBMIT; SIGNOFF;

Assicurarsi di sostituire <servername> con il nome del server e, analogamente, sostituire<username> e <password> con l'effettivo ID utente e password nel computer remoto.

Nota:L'opzione LAUNCHCMD deve puntare al percorso del file eseguibile di WPS nel server remoto, adesempio /home/installs/wps32/bin/wps -dmr.

2. Eseguire il programma ed esaminare il registro di output:

367 ODS _ALL_ CLOSE;368 FILENAME WPSWBHTM TEMP;369 ODS HTML(ID=WBHTML) BODY=WPSWBHTM GPATH="C:\Users\techwriter\AppData\Local\Temp\WPS Temporary369 ! Data\_TD5876";NOTE: Writing HTML(WBHTML) Body file WPSWBHTM370 SIGNON DOCSERVER SSH371 username="XXXX"372 password=XXXXXXXXXXX373 LAUNCHCMD=<path to WPS executable>";NOTE: Remote SSH signon to DOCSERVER startingNOTE: Establishing tunnelled connection to DOCSERVER:55765NOTE: (c) Copyright World Programming Limited 2002-2015. All rights reserved.NOTE: World Programming System 3.02 (03.02.00.00.011866) Licensed to World Programming Company Ltd NOTE: This session is executing on the Linux platform and is running in 64-bit mode

NOTE: Remote signon to DOCSERVER complete374 RSUBMIT;NOTE: Remote submit to DOCSERVER starting1 %PUT &SYSHOSTNAME;harmony.teamwpc.local2 %PUT 'Success with simple password sign-on';'Success with simple password sign-on'NOTE: Remote submit to DOCSERVER complete375 SIGNOFF;NOTE: Remote signoff from DOCSERVER starting

Guida dell’utente e riferimento a CommunicateVersione 4.0

9

NOTE: Submitted statements took : real time : 0.130 cpu time : 0.028NOTE: Remote signoff from DOCSERVER complete376 quit; run;377 ODS _ALL_ CLOSE;

• Le opzioni SSH, username, password e LAUNCHCMD dell'istruzione SIGNON forniscono tuttele informazioni necessarie per accedere all'host remoto tramite SSH e avviare il server WPSremoto.

• Tra le istruzioni RSUBMIT ed ENDRSUBMIT, vengono eseguite le seguenti due righe di codice nelcomputer remoto:

%PUT &SYSHOSTNAME;%PUT 'Success with simple password sign-on';

Nota:Le istruzioni %PUT scrivono in un file di registro locale, ma la variabile della macro&SYSHOSTNAME viene risolta nel computer remoto (nel DOCSERVER in questo caso).

• Infine, l'istruzione SIGNOFF elimina la connessione.

Uso di PROC DOWNLOADPROC DOWNLOAD è concepito per trasferire le raccolte, i set di dati o i file da un host remoto, utilizzandorispettivamente le opzioni INLIB, DATA e INFILE alla piattaforma locale, utilizzando le opzioniOUTLIB, OUT e OUTFILE. È necessario collocare PROC DOWNLOAD all'interno di un blocco di codiceRSUBMIT ... ENDRSUBMIT.

Seguono alcuni esempi di sintassi:

/* transfer a library */PROC DOWNLOAD INLIB=remotelib OUTLIB=locallib; RUN;

/* transfer a single dataset */PROC DOWNLOAD DATA=remotelib.dataset OUT=locallib.dataset; RUN;

/*transfer a file */PROC DOWNLOAD INFILE=”remote_host_file_path” OUTFILE=”local_platform_file_path”; RUN;

Nota:Per la sintassi completa di questa procedura, consultare la sezione Riferimento.

Guida dell’utente e riferimento a CommunicateVersione 4.0

10

Esempio dell'uso di PROC DOWNLOADLa presente sezione contiene un esempio che usa PROC DOWNLOAD.

1. Creare un nuovo programma in WPS Workbench copiando e incollando il seguente codice:

/*******************************************************************Sign on to the remote host*******************************************************************/signon <servername> sshuser='<username>'password='<password>'launchcmd='<path to WPS executable>';

/*******************************************************************Create and populate a small dataset on the remote host*******************************************************************/rsubmit;data communicatedemo;input movie $ 1-46 year $ 48-51;cards;Avatar 2009Titanic 1997The Avengers 2012Harry Potter and the Deathly Hallows - part 2 2011Frozen 2013;run;

/*******************************************************************Download the generated dataset to the local platform*******************************************************************/proc downloaddata=WORK.communicatedemoout=WORK.communicatedemo;run;

/*******************************************************************Complete the remote program execution and close the connection*******************************************************************/endrsubmit;signoff;

Accertarsi di sostituire <servername> con il nome del server remoto, sostituire <username>e <password> ove opportuno, e configurare launchcmd in modo che punti al percorso del fileeseguibile di WPS nel server remoto, ad esempio /home/installs/wps-3.2/bin/wps -dmr.Questo programma è concepito per creare un set di dati nell'host remoto, elencando 5 dei film conimporti maggiori di tutti i tempi, e scaricarlo nella piattaforma locale.

2. Eseguire il programma ed esaminare il registro di output, un messaggio sotto il richiamo PROCDOWNLOAD descrive il trasferimento dei dati:

NOTE: Dataset download in progress from WORK.communicatedemo to WORK.communicatedemoNOTE: 333 bytes were transferred to dataset WORK.communicatedemo at 333000 bytes/secNOTE: Dataset "WORK.communicatedemo" has 5 observation(s) and 2 variable(s)

Guida dell’utente e riferimento a CommunicateVersione 4.0

11

Il programma viene eseguito, creando un set di dati nel computer remoto e scaricandolo nellapiattaforma locale. È possibile esaminare il set di dati communicatedemo nella raccolta WORKlocale selezionando Server locale ➤ Raccolte ➤ Work nella scheda Esplora server WPS.

Uso di PROC UPLOADPROC UPLOAD è concepito per trasferire le raccolte, i set di dati o i file dalla piattaforma locale,utilizzando rispettivamente le opzioni INLIB, DATA e INFILE ad un host remoto, utilizzando le opzioniOUTLIB, OUT e OUTFILE. È necessario collocare PROC UPLOAD all'interno di un blocco di codiceRSUBMIT ... ENDRSUBMIT.

Seguono alcuni esempi di sintassi:

/* transfer a library */PROC UPLOAD INLIB=locallib OUTLIB=remotelib; RUN;

/* transfer a single dataset */PROC UPLOAD DATA=locallib.dataset OUT=remotelib.dataset; RUN;

/*transfer a file */PROC UPLOAD INFILE=”local_host_file_path” OUTFILE=”remote_host_file_path”; RUN;

Nota:Per la sintassi completa di questa procedura, consultare la sezione Riferimento.

Esempio dell'uso di PROC UPLOADLa presente sezione contiene un esempio tramite PROC UPLOAD, in cui il set di dati scaricato tramitel'esempio PROC DOWNLOAD viene caricato e salvato in un host remoto secondario.

1. Copiare e incollare il seguente codice:

/*******************************************************************Sign on to the remote host to upload the dataset*******************************************************************/signon <server2name> sshuser='<username>'password='<password>'launchcmd='<path to WPS executable>';

/*******************************************************************Create a library for the dataset on the host*******************************************************************/rsubmit;libname rlib "/home/<username>/datasets";

/********************************************************************Upload the dataset to the host and output its contents to the library

Guida dell’utente e riferimento a CommunicateVersione 4.0

12

*********************************************************************/proc uploaddata=WORK.communicatedemoout=rlib.communicatedemo;run;

/*******************************************************************Complete the remote program execution*******************************************************************/endrsubmit;

/*******************************************************************Sign off the remote host and close the connection*******************************************************************/signoff;

Accertarsi di sostituire <server2name> con il nome del server remoto secondario, sostituire<username> e <password> ove opportuno, e configurare launchcmd in modo che punti alpercorso del file eseguibile di WPS nel server remoto, ad esempio /home/installs/wps-3.2/bin/wps -dmr.

Importante:Una volta rilevata l'istruzione signoff, tutti i set di dati nel percorso WORK nell'host remoto verrannorimossi perché WORK è un percorso temporaneo. Se non si desidera che si verifichi, è necessariogenerare il set di dati ad un percorso permanente, utilizzando per esempio una raccolta come rlibnel suddetto codice.

2. Eseguire il programma ed esaminare il registro di output, un messaggio sotto il richiamo PROCcaricamento descrive il trasferimento dei dati:

NOTE: Dataset upload in progress from WORK.communicatedemo to WORK.communicatedemoNOTE: 333 bytes were transferred to dataset WORK.communicatedemo at 333000 bytes/secNOTE: Dataset "WORK.communicatedemo" has 5 observation(s) and 2 variable(s)

Il programma viene eseguito e carica il set di dati.

Importante:È possibile solo esaminare il set di dati se lo si è salvato in un percorso permanente (vale a dirediverso da WORK), eseguendo per esempio WPS Workbench nel server remoto ed eseguendouna raccolta aprendo un'istruzione come LIBNAME rlib "/home/<nomeutente>/datasets".Verrà visualizzato nella scheda Esplora server WPS in Raccolte.

Guida dell’utente e riferimento a CommunicateVersione 4.0

13

Esecuzione di sottoprogrammi in parallelo

WPS Communicate asincronoWPS Communicate può eseguire sottoprogrammi in modo asincrono, vale a dire, un sottoprogrammanon deve aspettare il completamento di un altro prima della propria esecuzione. A seconda dei relativicarichi di lavoro dei singoli sottoprogrammi, questa elaborazione può migliorare notevolmente leprestazioni poiché l'attesa si riduce dalla somma delle durate dei sottoprogrammi alla lunghezza delsottoprogramma più lungo.

Potrebbe essere un sottoprogramma remoto che viene eseguito in modo sincrono o viene controllatoin modo asincrono dall'opzione WAIT del proprio richiamo dell'istruzione RSUBMIT, e un'istruzioneWAITFOR corrispondente utilizzata per mettere WPS in attesa fino al completamento di uno o piùsottoprogrammi.

Nel seguente frammento di codice, i sottoprogrammi vengono eseguiti in parallelo nell'host1 e host2.Al termine, l'elaborazione continua localmente. Tale elaborazione potrebbe, ad esempio, eseguire unaunione dei risultati dei due sottoprogrammi precedenti.

%let remote-id1 = host1%let remote-id2 = host2/*******************************************************************Sign on to the remote machines*******************************************************************/signon <remote-id1> sshuser='<user1>'password='<password1>'launchcmd='<wps-install-location>/bin/wps -dmr>';

signon <remote-id2> sshuser='<user2>'password='<password2>'launchcmd='<wps-install-location/bin/wps -dmr>';

/*******************************************************************Execute sub-programs*******************************************************************/rsubmit <remote-id1> wait=no;/**** Run code on <remote-id1>****/endrsubmit;

rsubmit <remote-id2> wait=no;/**** Run code on <remote-id2>****/endrsubmit;

/*******************************************************************Wait for all remote processing to complete*******************************************************************/WAITFOR _ALL_ <remote-id1> <remote-id2>;

Guida dell’utente e riferimento a CommunicateVersione 4.0

14

/*******************************************************************Release connections to remote machines*******************************************************************/signoff <remote-id1>;signoff <remote-id2>;

/*******************************************************************Perform final local processing*******************************************************************/data _null_;/**** Local data step processing****/run;

L'opzione WAIT=NO di entrambe le istruzioni RSUBMIT informa WPS che è necessario eseguire isottoprogrammi in modo asincrono.

Nota:L'istruzione WAITFOR _ALL_ causa la sospensione dell'esecuzione del programma principale finoal termine dell'elaborazione in tutti i remote-id del server oppure finché non scade l'intervalloTIMEOUT, se è stato specificato. Se si utilizza WAITFOR _ANY_ <remote-id1> <remote-id2> osemplicemente WAITFOR <remote-id1> <remote-id2>, invece di WAITFOR _ALL_, il programmaprincipale sospenderà l'esecuzione fino al termine dell'elaborazione in ognuno dei remote-id delserver (o finché è scaduto l'intervallo TIMEOUT, se è specificato). Il valore predefinito è _ANY_ piuttostoche _ALL_ se nessuna argomentazione viene specificata tra WAITFOR e i remote-id del server.

Esecuzione di sottoprogrammi locali in paralleloWPS Communicate offre un ulteriore modo di parallelizzare l'elaborazione locale consentendo dicreare più connessioni alla piattaforma locale proprio come se fossero connessioni a host remoti.Invece di specificare complete istruzioni di accesso che richiedono l'autenticazione, come descritto inprecedenza, è sufficiente utilizzare:

signon local1 launchcmd="<local-wps-install-directory>\bin\wps.exe -dmr";signon local2 launchcmd="<local-wps-install-directory>\bin\wps.exe -dmr";

o semplicemente

signon local1 launchcmd="!sascmd –dmr"signon local2 launchcmd="!sascmd –dmr"

Le argomentazioni local1 e local2 diventano alias per le connessioni alla piattaforma locale cheè possibile utilizzare in modo esattamente identico ai nomi degli host dei server connessi in modalitàremota. Sebbene dipenda dagli schemi di uso della risorsa dei vari sottoprogrammi, una tale tecnicapuò portare a miglioramenti delle prestazioni anche se non vi è un netto aumento della larghezza dibanda di CPU o I/O disponibile.

Guida dell’utente e riferimento a CommunicateVersione 4.0

15

Trasferimento delle variabili della macroÈ possibile far passare le variabili della macro tra la piattaforma locale e un host remoto tramite leistruzioni del processore della macro %SYSLPUT e %SYSRPUT.

L'istruzione %SYSLPUT crea una variabile della macro in un host remoto con cui si è stabilita unasessione di WPS Communicate. È necessario collocare la chiamata della macro dopo l'istruzioneSIGNON, ma prima dell'istruzione RSUBMIT.

L'istruzione %SYSRPUT recupera una variabile della macro da un host remoto a cui vi è una sessione diWPS Communicate stabilita, creando un'identica variabile della macro locale. È possibile collocare lachiamata della macro solo all'interno di un blocco di codice RSUBMIT ... ENDRSUBMIT, perché vieneeseguito nell'host remoto e restituisce le variabili nuovamente alla piattaforma locale.

Seguono alcuni esempi di frammenti di codice utilizzando queste chiamate:

signon <servername> sshuser='<username>'password='<password>'launchcmd='<path to WPS executable>';/*******************************************************************Send over a macro definition from the local to the remote platform *******************************************************************/%SYSLPUT LOCALOS=&SYSSCPL.;

/**********************************************************************SUBMIT the following code to UNIX, between the RSUBMIT/ENDRSUBMIT block***********************************************************************/rsubmit;

%put "EXECUTING ON REMOTE OS &SYSSCPL. FROM LOCAL OS &LOCALOS.";%put &SYSHOSTNAME;

%SYSRPUT REMOTEOS=&SYSSCPL.;

endrsubmit;

%put "EXECUTING ON LOCAL OS &SYSSCPL. FROM REMOTE OS &REMOTEOS.";

/*******************************************************************SIGNOFF the UNIX platform, preventing further RSUBMITs*******************************************************************/signoff;

%put &SYSHOSTNAME;

Nota:Per la sintassi completa di queste istruzioni del processore della macro, consultare la sezioneRiferimento.

Guida dell’utente e riferimento a CommunicateVersione 4.0

16

RiferimentoLe definizioni dei EBNF (forma Backus-Naur estesa) sono notazioni che aiutano a spiegare la sintassidei linguaggi di programmazione, e sono utilizzate nella presente guida per descrivere la sintassi dellinguaggio.

Come leggere gli EBNFEBNF è una notazione testuale che accompagna le strutture del linguaggio significative, qualiprocedure, istruzioni e così via.

La descrizione di ciascun concetto linguistico comincia con la rappresentazione EBNF .

Immissione di testoIl testo che è necessario immettere esattamente nel modo in cui è visualizzato, viene mostrato con uncarattere macchina da scrivere:

 OUTPUT ; 

Questo esempio descrive un frammento di sintassi in cui la parola chiave OUTPUT viene seguita daun carattere punto e virgola:;. La versione EBNF di questo frammento è semplicemente i caratteri:OUTPUT;.

Generalmente le maiuscole/minuscole del testo non sono importanti, ma in questo contesto, èconsuetudine utilizzare le maiuscole per le parole chiave.

Elementi segnapostoI segnaposto, che bisogna sostituire con testo pertinente e dipendente dal contesto, sono rappresentatiin minuscole, circondate da una casella:

 OUTPUT nome-del-set-di-dati ; 

Qui, è necessario immettere la parola chiave OUTPUT letteralmente, ma bisogna sostituire ilnome-del-set-di-dati con qualcosa di appropriato per il programma, in questo caso, il nome del set didati a cui aggiungere una osservazione.

OpzionalitàQuando gli elementi sono opzionali, vengono visualizzati tra parentesi quadre [ ] in EBNF :

 OUTPUT [  nome-del-set-di-dati  ] ; 

Guida dell’utente e riferimento a CommunicateVersione 4.0

17

RipetizioneIn EBNF, la ripetizione è denotata da parentesi graffe e puntini di sospensione { … }. Un separatoreopzionale per istanze multiple è illustrato subito prima dei puntini di sospensione.

 OUTPUT {  nome-del-set-di-dati  … } ; 

In alto, è necessario immettere la parola chiave OUTPUT letteralmente e farla seguire da una o piùripetizioni del nome-del-set-di-dati; in questo caso, non è stato necessario nessun separatore, tranneuno spazio.

L'esempio in basso dimostra l'uso di un separatore.

  nome-della-funzione ( {  argomentazione ,  … } ) ; 

OpzioniIn EBNF, l'opzione è rappresentata da un simbolo logico OR | tra ogni opzione.

 GETNAMES [ YES | NO ]  ; 

Nell'esempio illustrato in alto, è necessario immettere la parola chiave GETNAMES letteralmente e poi laparola chiave YES o la parola chiave NO.

FrammentiQuando la sintassi è troppo complicata per rientrare in una definizione, si potrebbe suddividere inframmenti:

 PROC PRINT { option … }  

option[  DATA = nome-del-set-di-dati   | LABEL ] 

In alto, l'intera sintassi è suddivisa in frammenti di EBNF . Il primo indica che PROC PRINT deveessere seguito da una o più istanze di un'opzione, ciascuna delle quali deve aderire alla sintassi fornitanel secondo diagramma.

Guida alla lettura di EBNFLa tabella riportata di seguito riassume le convenzioni di EBNF, utilizzate in questo contesto:

Convenzione Descrizione

[] Elementi opzionali

{…} Gruppo di elementi ripetuti

{,…} I separatori che delimitano le iterazioni di elementiripetuti sono illustrati subito prima dei puntini disospensione

Guida dell’utente e riferimento a CommunicateVersione 4.0

18

Convenzione Descrizione

| O..o all'interno di un gruppo selezionato delimitato da[ ]. Per esempio:

• [A|B] – scegliere A o B• [A|B|] – scegliere A o B oppure niente (cioè

omettere completamente il gruppo)

"" Commento – per esempio, il titolo di un gruppo

monospazio Parole chiave e separatori

corsivo variabili

grassetto Elementi presentati nei propri diagrammi, come iframmenti

sottolineato Selezione predefinita

Istruzioni globali

ENDRSUBMIT

 ENDRSUBMIT ; 

Questa istruzione indica la fine di un blocco di codice che è cominciato con un'istruzione RSUBMIT.

RSUBMIT

 RSUBMIT [  remote-id  ] [ { option … }  ] ; 

option[ options_A_to_M | options_N_to_Z ] 

options A to M[   [ CMACVAR | MACVAR ] = 'variable-name'   |

 [ CONNECTPERSIST | CPERSIST | PERSIST ] = [ YES | NO ]   | 

[  CONNECTREMOTE |

Guida dell’utente e riferimento a CommunicateVersione 4.0

19

CREMOTE |REMOTE |PROCESS

] = remote-id   | [ CONNECTWAIT | CWAIT | WAIT ] = [ YES | NO ]   | [ CSYSRPUTSYNC | SYSRPUTSYNC ] = [ YES | NO ]   | [ CSCRIPT | SCRIPT ] = signon-script   | IDENTITYFILE = identity-file   | LOG = [ KEEP | PURGE | filename  ]  

options N to Z[  [ NOCSCRIPT | NOSCRIPT ]  |

 OUTPUT = [ KEEP | PURGE | filename  ]   | 

[  PASSWORD |PASS |PASSWD |PW |PWD

] = string   | [ SASCMD | LAUNCHCMD ] = 'command-name'   | SIGNONWAIT = [ YES | NO ]   | TBUFSIZE = [  bytes  |   kilobytes K  |   megabytes M  ]   | 

[  UID |USER |USERID |USERNAME

] = 'string'   |SSH  |DEBUG

Questa istruzione contrassegna l'inizio di un blocco del codice programma da inviare ad un host (disolito remoto) per l'esecuzione.

CMACVAR, MACVARQuesta opzione specifica una variabile della macro il cui valore è associato allo stato di completamentodel blocco attuale di RSUBMIT.

CONNECTPERSIST, CPERSIST, PERSISTQuesta opzione significa se o meno una disconnessione automatica si verifica dopo un SIGNON eRSUBMIT.

Guida dell’utente e riferimento a CommunicateVersione 4.0

20

CONNECTREMOTE, CREMOTE, REMOTE, PROCESSQuesta opzione individua il computer remoto a cui si stabilirà una connessione, direttamente odenominando una variabile della macro che contiene l'indirizzo.

Nota:Se l'opzione CONNECTREMOTE viene utilizzata con il nome dell'host remoto appositamente fornito comevariabile della macro, nessuna E commerciale si dovrebbe collocare prima del nome della variabiledella macro. La sintassi corretta è illustrata nel seguente frammento:

...%LET HostName = RemoteHost;

options ssh_hostvalidation=none;signon connectremote=HostName ssh /* Not &HostName */user = <username>password = <password>launchcmd = '<location-of-wps-executable> -dmr';...

CONNECTWAIT, CWAIT, WAITQuesta opzione determina se il blocco RSUBMIT si deve eseguire in modalità asincrona o sincrona,impostandola rispettivamente su NO o YES.

CSYSRPUTSYNC, SYSRPUTSYNCSe si imposta su YES, questa opzione impone la definizione di variabili della macro quando si esegue%SYSRPUT.

CSCCRIPT, SCRIPTQuesta opzione individua uno script di accesso.

IDENTITYFILEQuesta opzione specifica un file contenente le informazioni di autenticazione, come le chiavi SSH.

NOSCRIPT, NOCSCRIPTQuesta opzione indica che non si dovrebbe usare nessuno script a cui accedere.

LOGQuesta opzione definisce se è necessario mantenere, ripulire o inviare il registro di sistema ad un filespecifico.

Guida dell’utente e riferimento a CommunicateVersione 4.0

21

OUTPUTQuesta opzione definisce se è necessario mantenere, ripulire o inviare l'output del sottoprogramma adun file specifico.

PASSWORD, PASS, PASSWD, PW, PWDQuesta opzione viene utilizzata per specificare una password per l'autorizzazione remota.

SASCMD, LAUNCHCMDSe presente, questa opzione viene utilizzata per specificare il comando necessario per avviare WPSnel computer remoto.

SIGNONWAITQuesta opzione stipula che un SIGNON dovrebbe terminare prima di permettere l'elaborazionesuccessiva.

TBUFSIZEQuesta opzione specifica le dimensioni del buffer del messaggio di WPS COMMUNICATE.

UID, USER, USERID, USERNAMESe presente, questa opzione specifica il nome utente.

SSHQuesta opzione specifica che la connessione utilizzerà il protocollo SSH crittografato.

DEBUGQuesta opzione specifica che altri messaggi di debug sono scritti nel registro di sistema.

SIGNOFF

 SIGNOFF [  | remote-id  | _ALL_ ]  [ { option … }  ] ; 

Guida dell’utente e riferimento a CommunicateVersione 4.0

22

option[   [ CMACVAR | MACVAR ] = 'variable-name'   |

 [  CONNECTREMOTE |

CREMOTE |REMOTE |PROCESS

] = remote-id   | [ CSCRIPT | SCRIPT ] = signon-script   |[ NOCSCRIPT | NOSCRIPT ] 

Questa istruzione chiude una connessione con un server remoto, in seguito all'esecuzione di un bloccodi codice eseguito in modalità remota.

CMACVAR, MACVARQuesta opzione specifica una variabile della macro associata alla sessione remota e il cui valore èassociato allo stato di completamento dell'istruzione attuale di SIGNOFF.

CONNECTREMOTE, CREMOTE, REMOTE, PROCESSQuesta opzione denomina la sessione remota da cui si desidera disconnettersi.

CSCRIPT, SCRIPTQuesta opzione individua uno script da eseguire durante la disconnessione.

NOSCRIPT, NOCSCRIPTQuesta opzione indica che non si dovrebbe coinvolgere nessuno script nel processo di disconnessione.

SIGNON

 SIGNON [  remote-id  ] [ { option … }  ] ; 

option[ options_A_to_O | options_P_to_Z ] 

options A to O[   [ CMACVAR | MACVAR ] = 'variable-name'   |

 

Guida dell’utente e riferimento a CommunicateVersione 4.0

23

[  CONNECTREMOTE |CREMOTE |REMOTE |PROCESS

] = remote-id   | [ CONNECTWAIT | CWAIT | WAIT ] = [ YES | NO ]   | [ CSCRIPT | SCRIPT ] = signon-script   | [ CSYSRPUTSYNC | SYSRPUTSYNC ] = [ YES | NO ]   | IDENTITYFILE = identity-file   | LOG = [ KEEP | PURGE | filename  ]   |[ NOCSCRIPT | NOSCRIPT ]  | OUTPUT = [ KEEP | PURGE | filename  ]  

options P to Z[   

[  PASSWORD |PASS |PASSWD |PW |PWD

] = string   | [ SASCMD | LAUNCHCMD ] = 'command-name'   | SIGNONWAIT = [ YES | NO ]   | TBUFSIZE = [  bytes  |   kilobytes K  |   megabytes M  ]   | 

[  UID |USER |USERID |USERNAME

] = 'string'   |SSH  |DEBUG

Questa istruzione e le sue opzioni forniscono le informazioni necessarie per specificare dove si troval'installazione di WPS remota, oltre alle credenziali per connettersi e accedere al server remoto, primadi richiamare un blocco di codice eseguito in modalità remota.

CMACVAR, MACVARQuesta opzione specifica una variabile della macro associata alla sessione remota e il cui valore èassociato allo stato di completamento dell'istruzione attuale di SIGNON.

Guida dell’utente e riferimento a CommunicateVersione 4.0

24

CONNECTREMOTE, CREMOTE, REMOTE, PROCESSQuesta opzione denomina la sessione remota.

Notare che se l'opzione CONNECTREMOTE viene utilizzata con il nome dell'host remoto appositamentefornito come variabile della macro, (forse in modo controintuitivo) nessuna E commerciale si dovrebbecollocare prima del nome della variabile della macro. La sintassi corretta è illustrata nel seguenteframmento:

...%LET HostName = RemoteHost;

options ssh_hostvalidation=none;signon connectremote=HostName ssh /* Not &HostName */user = <username>password = <password>launchcmd = '<location-of-wps-executable> -dmr';...

CONNECTWAIT, CWAIT, WAITQuesta opzione determina se il blocco RSUBMIT si deve eseguire in modalità asincrona o sincrona,impostandola rispettivamente su NO o YES.

CSYSRPUTSYNC, SYSRPUTSYNCSe si imposta su YES, questa opzione impone la definizione di variabili della macro quando si esegue%SYSRPUT.

CSCCRIPT, SCRIPTQuesta opzione individua uno script di accesso.

IDENTITYFILEQuesta opzione specifica un file contenente le informazioni di autenticazione, come le chiavi SSH.

NOSCRIPT, NOCSCRIPTQuesta opzione indica che non si dovrebbe usare nessuno script a cui accedere.

LOGQuesta opzione definisce se è necessario mantenere, ripulire o inviare il registro di sistema ad un filespecifico.

OUTPUTQuesta opzione definisce se è necessario mantenere, ripulire o inviare l'output del sottoprogramma adun file specifico.

Guida dell’utente e riferimento a CommunicateVersione 4.0

25

PASSWORD, PASS, PASSWD, PW, PWDQuesta opzione viene utilizzata per specificare una password per l'autorizzazione remota.

SASCMD, LAUNCHCMDSe presente, questa opzione viene utilizzata per specificare il comando necessario per avviare WPSnel computer remoto.

SIGNONWAITQuesta opzione stipula che un SIGNON dovrebbe terminare prima di permettere l'elaborazionesuccessiva.

TBUFSIZEQuesta opzione specifica le dimensioni del buffer del messaggio di WPS COMMUNICATE.

UID, USER, USERID, USERNAMESe presente, questa opzione specifica il nome utente.

SSHQuesta opzione specifica che la connessione utilizzerà il protocollo SSH crittografato.

DEBUGQuesta opzione specifica che altri messaggi di debug sono scritti nel registro di sistema.

WAITFOR WAITFOR [  | _ANY_ | _ALL_ ]  {  remote-id  … } [  TIMEOUT = seconds   ] ; 

Dal momento che il diagramma in alto si applica solo a WPS Communicate, l'istruzione WAITFOR_ALL_ sospende l'esecuzione della sessione corrente fino al completamento dell'elaborazione per tuttii remote-id del server o finché non scade l'intervallo TIMEOUT se è stato specificato.

Se si utilizza WAITFOR _ANY_, o semplicemente WAITFOR, al posto di WAITFOR _ALL_, l'esecuzionedella sessione verrà sospesa solo fino al completamento dell'elaborazione in uno dei server remote-id (oppure finché non scade l'intervallo TIMEOUT se è stato specificato).

Nota:Come si insinua in alto, il valore predefinito è _ANY_ piuttosto che _ALL_ se nessuna argomentazioneviene specificata tra WAITFOR e i remote-id.

Guida dell’utente e riferimento a CommunicateVersione 4.0

26

Istruzioni del macroprocessore

%SYSLPUT %SYSLPUT

[    macro-variable = value   |_ALL_ |_AUTOMATIC_ |_GLOBAL_ |_LOCAL_ |_USER_

] [  / { option … }   ] ; 

option[  LIKE = 'pattern'   |  REMOTE = remote-id   ] 

Questa istruzione crea una variabile della macro in un host remoto con cui si è stabilita una sessione diWPS Communicate. È necessario collocare al di fuori del corrispondente blocco di RSUBMIT.

%SYSRPUT %SYSRPUT macro-variable = value ; 

Questa istruzione recupera una variabile della macro da un host remoto a cui vi è una sessione di WPSCommunicate stabilita, creando un'identica variabile della macro locale. È necessario collocare al difuori del corrispondente blocco di RSUBMIT.

Procedure

Procedura di DOWNLOADQuesta procedura scarica uno o più file, raccolte o set di dati da un host remoto. È possibile solorichiamare dall'interno di un blocco RSUBMIT.

Istruzioni supportate• PROC DOWNLOAD (pag. 27)

Guida dell’utente e riferimento a CommunicateVersione 4.0

27

• EXCLUDE (pag. 29)• SELECT (pag. 29)• WHERE (pag. 29)

PROC DOWNLOAD

 PROC DOWNLOAD [ { option … }  ] ; 

option[   AFTER = numeric   |

BINARY | DATA = server-data-set [  ( dataset-options )  ]   |DATECOPY  | EXTENDSN = [ NO | YES ]   | INDEX = [ NO | YES ]   | INFILE = server-file-reference   | [ INLIB | IN | INDD ] = server-library-name   | MEMTYPE =

[  ALL |CATALOG |DATA |MDDB |VIEW

]   | OUT =  [  library.dataset  | dataset  ] [  ( dataset-options )  ]    | OUTFILE = client-file-reference   | [ OUTLIB | OUTDD | OUT ] = client-library-name   |V6TRANSPORT

AFTERSpecifica una data di modifica numerica, assicurandosi che vengano scaricati solo i set di dati o leraccolte modificate dopo questa data. Questa opzione non è valida per i download dei file esterni.

BINARYValido solo quando si scaricano file esterni, questa opzione specifica che il trasferimento dovrebbeessere una esatta copia binaria.

DATASpecifica il nome di un set di dati da scaricare.

Guida dell’utente e riferimento a CommunicateVersione 4.0

28

DATECOPYSe presente, questa opzione indica che la data e ora di creazione di un set di dati remoto si devonomantenere quando viene scaricato. Questa opzione non è valida per i download dei file esterni.

EXTENDSNSpecifica se le brevi variabili numeriche dovrebbero avere le loro lunghezze estese. Questa opzionenon è valida per i download dei file esterni e si può considerare se si trasferiscono i set di dati da unmainframe ad un PC.

INDEXPer i set di dati remoti che hanno indici, indica se questi indici si devono ristabilire nel computer localedopo il download. Questa opzione non è valida per i download dei file esterni.

INFILESpecifica il nome di un file remoto esterno da scaricare. Se questa opzione è presente, lo deve esserel'opzione OUTFILE=.

INLIBSpecifica il nome della raccolta remota. Questa opzione non è valida per i download dei file esterni.

OUTSpecifica il nome del set di dati locale ricevente. Questa opzione non è valida per i download dei fileesterni.

OUTFILESpecifica il nome del file locale per ricevere un download del file esterno. Se questa opzione èpresente, lo deve essere l'opzione INFILE.

OUTLIBSpecifica il nome della raccolta locale in cui viene scaricato un set di dati remoto. Questa opzione non èvalida per i download dei file esterni.

V6TRANSPORTQuesta è un'opzione di conversione quando si scambiano i dati tra due diverse versioni.

Guida dell’utente e riferimento a CommunicateVersione 4.0

29

EXCLUDE

 EXCLUDE { data-set … } [  / option  ] ; 

data-set  data-set-name [ : ]

[   (  [ MEMTYPE | MTYPE | M ] = [ DATA | VIEW | CATALOG ]  ) ]  

option MEMTYPE = [ DATA | VIEW | CATALOG | ALL ]  

MEMTYPEQuesta opzione specifica i tipi di membro da scaricare, vedere il diagramma sintattico in alto. Questaopzione non è valida per i download dei file esterni.

SELECT

 SELECT { data-set … } [  / option  ] ; 

data-set  data-set-name [ : ]

[   (  [ MEMTYPE | MTYPE | M ] = [ DATA | VIEW | CATALOG ]  ) ]  

option MEMTYPE = [ DATA | VIEW | CATALOG | ALL ]  

MEMTYPEVedere l'istruzione EXCLUDE.

WHERE

 WHERE condition ; 

Guida dell’utente e riferimento a CommunicateVersione 4.0

30

Procedura UPLOADQuesta procedura carica uno/a o più file, raccolte o set di dati a un host remoto. È possibile solorichiamare dall'interno di un blocco RSUBMIT.

Istruzioni supportate• PROC UPLOAD (pag. 30)• EXCLUDE (pag. 32)• SELECT (pag. 32)• WHERE (pag. 32)

PROC UPLOAD

 PROC UPLOAD [ { option … }  ] ; 

option[   AFTER = numeric   |

BINARY | DATA = client-data-set   |DATECOPY | EXTENDSN = [ NO | YES ]   | INDEX = [ NO | YES ]   | INFILE = client-file-reference   | [ INLIB | IN | INDD ] = client-library-name   | MEMTYPE =

[  ALL |CATALOG |DATA |MDDB |VIEW

]   | OUT =  [  library.dataset  | dataset  ] [  ( dataset-options )  ]    | [ OUTLIB | OUTDD | OUT ] = server-library-name   | OUTFILE = server-file-reference   |V6TRANSPORT

AFTERSpecifica una data di modifica numerica, assicurandosi che vengano caricati solo i set di dati o leraccolte modificate dopo questa data. Questa opzione non è valida per gli upload di file esterni.

Guida dell’utente e riferimento a CommunicateVersione 4.0

31

BINARYValido solo quando si caricano file esterni, questa opzione specifica che il trasferimento dovrebbeessere una esatta copia binaria.

DATASpecifica il nome di un set di dati da caricare.

DATECOPYSe presente, questa opzione indica che la data e ora di creazione di un set di dati locale si devonomantenere quando viene caricato. Questa opzione non è valida per gli upload di file esterni.

EXTENDSNSpecifica se le brevi variabili numeriche dovrebbero avere le loro lunghezze estese. Questa opzionenon è valida per gli upload di file esterni e si può considerare se si trasferiscono i set di dati ad unmainframe da un PC.

INDEXPer i set di dati locali che hanno indici, indica se questi indici si devono ristabilire nel computer remotodopo l'upload. Questa opzione non è valida per gli upload di file esterni.

INFILESpecifica il nome di un file esterno locale da caricare. Se questa opzione è presente, lo deve esserel'opzione OUTFILE=.

INLIBSpecifica il nome della raccolta locale. Questa opzione non è valida per gli upload di file esterni.

MEMTYPEQuesta opzione specifica i tipi di membro da caricare, vedere il diagramma sintattico in alto. Questaopzione non è valida per gli upload di file esterni.

OUTSpecifica il nome del set di dati remoto ricevente. Questa opzione non è valida per gli upload di fileesterni.

OUTFILESpecifica il nome del file remoto per ricevere un upload del file esterno. Se questa opzione è presente,lo deve essere l'opzione INFILE.

Guida dell’utente e riferimento a CommunicateVersione 4.0

32

OUTLIBSpecifica il nome della raccolta remota in cui si carica un set di dati locale. Questa opzione non è validaper gli upload di file esterni.

V6TRANSPORTQuesta è un'opzione di conversione quando si scambiano i dati tra due diverse versioni.

EXCLUDE

 EXCLUDE { data-set … } [  / option  ] ; 

data-set  data-set-name [ : ]

[   (  [ MEMTYPE | MTYPE | M ] = [ DATA | VIEW | CATALOG ]  ) ]  

option MEMTYPE = [ DATA | VIEW | CATALOG | ALL ]  

SELECT

 SELECT { data-set … } [  / option  ] ; 

data-set  data-set-name [ : ]

[   (  [ MEMTYPE | MTYPE | M ] = [ DATA | VIEW | CATALOG ]  ) ]  

option MEMTYPE = [ DATA | VIEW | CATALOG | ALL ]  

WHERE

 WHERE condition ; 

Guida dell’utente e riferimento a CommunicateVersione 4.0

33

Opzioni di sistema

AUTOSIGNON[ AUTOSIGNON | NOAUTOSIGNON ] 

Valido in: Istruzione OPTIONS, file di configurazione e riga di comandoValore predefinito: NOAUTOSIGNON

DescrizioneQuando è attiva questa opzione di sistema, l'invio remoto tenterà l'accesso automatico.

COMAMID COMAMID = communication-method  

Valido in: Istruzione OPTIONS, file di configurazione e riga di comandoValore predefinito: TCPLunghezza massima: 8

DescrizioneQuesta opzione di sistema specifica il metodo di comunicazione da utilizzare per stabilire lecomunicazioni remote.

CONNECTPERSIST[ CONNECTPERSIST | NOCONNECTPERSIST ] 

Valido in: Istruzione OPTIONS, file di configurazione e riga di comandoValore predefinito: CONNECTPERSIST

DescrizioneSe è impostata, questa opzione di sistema specifica che una connessione remota sarà permanentedopo un blocco RSUBMIT. Questa opzione di sistema è un alias di CPERSIST.

Guida dell’utente e riferimento a CommunicateVersione 4.0

34

CONNECTREMOTE CONNECTREMOTE = server-name  

Valido in: Istruzione OPTIONS, file di configurazione e riga di comandoValore predefinito: vuotoLunghezza massima: 1024

DescrizioneQuesta opzione di sistema individua uno specifico server remoto a cui connettersi. È vuoto (stringavuota) per impostazione predefinita.

DMR[ DMR | NODMR ] 

Valido in: Solo riga di comandoValore predefinito: NODMR

DescrizioneQuesta opzione di sistema richiama una sessione del server WPS COMMUNICATE. È inattivo perimpostazione predefinita e può avere effetto solo tramite la riga di comando.

SASCMD SASCMD = command  

Valido in: Istruzione OPTIONS, file di configurazione e riga di comandoValore predefinito: ""Lunghezza massima: 32767

DescrizioneQuesta opzione di sistema specifica il comando utilizzato da WPS COMMUNICATE per avviare un'altrasessione di WPS locale. È vuoto (stringa vuota) per impostazione predefinita.

Guida dell’utente e riferimento a CommunicateVersione 4.0

35

SASSCRIPT SASSCRIPT =  ( {  location  … } )  

Valido in: Istruzione OPTIONS, file di configurazione e riga di comandoValore predefinito: ""Lunghezza massima: 1024

DescrizioneQuesta opzione di sistema specifica il percorso degli script di accesso a WPS COMMUNICATE. Èvuoto (stringa vuota) per impostazione predefinita.

Guida dell’utente e riferimento a CommunicateVersione 4.0

36

Guida all'amministrazione delsistemaQuesta parte della guida è concepita per gli amministratori di sistema che sono responsabili perl'autenticazione del server relativa a WPS Communicate e WPS Link e per la generazione e ladistribuzione delle chiavi pubbliche e private richieste.

Nota:WPS Communicate e WPS Link sono funzionalità separate che si possono eseguireindipendentemente. Vale a dire, non è necessario uno per eseguire l'altro. Si usa WPS Communicateper eseguire il codice selettivo negli host del server remoto o un mainframe z/OS, e WPS Link pereseguire interi programmi, tramite la GUI di Workbench, solo negli host del server remoto. Le duefunzionalità sono descritte insieme qui dato che entrambe richiedono mezzi di autenticazione remota.

Segue un riepilogo dei metodi di autenticazione poiché si applicano a entrambi WPS Communicate eWPS Link.

Metodo di autenticazione WPS Communicate WPS Link

Password Sì SìChiave pubblica con passphrase e agente portachiavi Sì SìChiave pubblica con passphrase e nessun agenteportachiavi

No Sì

Kerberos Sì SìTelnet in z/OS Sì No

Autenticazione in z/OS con TelnetWPS Communicate può usare un accesso Telnet ad un host z/OS remoto per avviare un server WPStramite una CLIST in dotazione, denominata TSOWPS. Nessuna configurazione USS (UNX SystemServices) è necessaria e la parte USS di WPS non viene utilizzata.

1. In primo luogo, assicurarsi che la TSOWPS CLIST sia operativa per l'installazione, eseguendoun normale accesso TN3270 con un emulatore del terminale 3270 all'host z/OS e richiamandola TSOWPS CLIST in dotazione. Normalmente, si potrebbe usare l'Option 6 di ISPF (InteractiveSystem Productivity Facility) e digitare TSOWPS al prompt.

Guida dell’utente e riferimento a CommunicateVersione 4.0

37

Se si riceve un messaggio simile al seguente, potrebbe essere necessario apportare modifiche allaTSOWPS CLIST o all'installazione di WPS:

WPS CANNOT BE INVOKED AS WPSPFX HAS NOT BEEN DEFINED

Questo messaggio informa l'utente che il prefisso del set di dati di installazione non è risolto e cheWPS non è in grado di individuare i suoi vari componenti.

2. Acquisire i prompt di accesso Telnet eseguendo un accesso manuale all'host z/OS con unclient Telnet, quale il client PuTTYtel. Avviare il client e immettere il nome dell'host nel campo diimmissione Host Name (or IP address) (Nome Host (o indirizzo IP)). Assicurarsi di selezionare ilpulsante di opzione Telnet.

I prompt successivi dipenderanno da come è stato configurato l'host z/OS. Lo scopo di questopassaggio è duplice:

• Il primo è quello di verificare che è possibile eseguire una connessione Telnet all'host.• Il secondo è quello di acquisire i prompt ed eventuali risposte necessarie.

Il seguente registro acquisisce una tipica sequenza di prompt quando si esegue un accesso Telnetad un host z/OS. L'obiettivo è quello di comprendere questa sequenza, quindi utilizzarla per scrivereuno script che automatizzerà il processo.

Guida dell’utente e riferimento a CommunicateVersione 4.0

38

Nota:Le risposte immesse dall'utente non sono state ripetute in questo output per la ragione che l'esattasequenza di input e risposte dipende spesso dall'installazione. Ne consegue che potrebbe esserenecessario regolare lo script di accesso codificato manualmente.

IKJ56700A ENTER USERID -IKJ56714A ENTER CURRENT PASSWORD FOR XXXX-ICH70001I XXXX LAST ACCESS AT 13:59:30 ON THURSDAY, JANUARY 15, 2015IKJ56496I DEFAULT ACCOUNT NUMBERS COULD NOT BE OBTAINED - ENTER ACCOUNT NUMBERIKJ56481I THE PROCEDURE NAME DBSPROCA IS A DEFAULT NAME - YOU MAY CHANGE ITIKJ56455I XXXX LOGON IN PROGRESS AT 14:05:08 ON JANUARY 15, 2015IKJ56951I NO BROADCAST MESSAGES****************************************************************** APPLICATION DEVELOPER'S CONTROLLED DISTRIBUTION (ADCD) ******************************************************************* ** USER.CLIST(ISPFCL) PRODUCES THIS MESSAGE ** USER.* DATASETS CONTAIN SYSTEM CUSTOMIZATION BY WP ** ADCD.* DATASETS CONTAIN SYSTEM CUSTOMIZATION ** SMP/E DATASETS CAN BE LOCATED FROM 3.4 WITH DSNAME **.CSI ** ******************************************************************READY

3. Scrivere lo script di accesso Telnet.

Avendo appena eseguito un accesso manuale, è necessario scrivere uno script per automatizzareil processo, informati dalla sequenza di richieste di verifica e risposte osservate durante l'accessomanuale. Nel seguente commenti, ogni riga di script viene descritto da un breve testo descrittivo.

Nota:È incluso un completo esempio 'pulito' di script (per una potenziale operazione di taglia/incolla emodifica) in Esempio di script di autenticazione Telnet (pag. 41).

TRACE ON;

L'istruzione TRACE ON invia le istruzioni al registro appena vengono eseguiti da WPS. È utile per ildebug, ma probabilmente viene disattivata per la produzione.

ECHO ON;

L'istruzione ECHO ON causa la ripetizione di tutte le risposte ricevute dal server Telnet nel registro;di nuovo, è utile ai fini del debug.

LOG "NOTE: Signon script entered.";

L'istruzione stampa un messaggio nel registro per indicare che lo script è in elaborazione. Èpossibile utilizzare le istruzioni LOG abbondantemente all'interno dello script di accesso perdimostrare lo stato.

IF signoff THEN GOTO signoff;

La riga è una parte standard della maggior parte degli script di accesso. Una variabile di signoff(disconnessione) specifica viene impostata se lo script viene eseguito dopo l'istruzione SIGNOFF,invece dell'istruzione SIGNON. Consente ad uno script di affrontare entrambe le situazioni. In questasede, il controllo si associa all'etichetta di signoff, se rileva una disconnessione.

Guida dell’utente e riferimento a CommunicateVersione 4.0

39

Nota:Non è importante il nome dell'etichetta, è semplicemente tradizionale per denominarla signoff.

WAITFOR "ENTER USERID -", 5 seconds : fail;TYPE "&USER" ENTER;

Qui, viene richiamata un'istruzione WAITFOR in modo da attendere la ricezione di una particolareriga dal server Telnet. L'istruzione causa l'attesa dello script finché si riceve una riga contenenteil testo particolare, nella fattispecie ENTER USERID, da qualche parte nel suo contenuto. Se nonsi riceve il prompt in 5 secondi, si assocerà all'etichetta fail successiva. Se si riceve la risposta,l'elaborazione continua nella riga successiva che simula la digitazione dell'utente. Ecco la risposta èil nome utente che viene fornito allo script di accesso tramite una variabile della macro &USER.

WAITFOR "ENTER CURRENT PASSWORD", 5 seconds : fail;TYPE "&PASSWORD" ENTER;

Il prossimo prompt previsto è il prompt della password e, nuovamente, viene fornito tramite unavariabile della macro.

Nota:Non è necessario acquisirlo e farlo coincidere con il prompt completo, il comando WAITFOR cercasemplicemente una riga contenente il testo specifico, da qualche parte al suo interno.

WAITFOR "ENTER ACCOUNT NUMBER", 5 seconds : fail;TYPE "WPS" ENTER;WAITFOR "YOU MAY CHANGE IT", 5 seconds : fail;TYPE ENTER;

Successivamente, viene visualizzato un prompt che richiede un ACCOUNT NUMBER, la cui rispostadipenderà dall'installazione. Ecco WPS. Quindi potrebbe venire un prompt su un nome di procedura,a cui una risposta vuota con INVIO potrebbe essere una replica soddisfacente. A seconda dellaconfigurazione di z/OS, si può anche considerare e fornire una o più risposte aggiuntive tramitele stesse tecniche. Fare riferimento agli scambi che si sono verificati durante l'accesso manualeiniziale, per determinare se è necessario adattare molte di quelle conversazioni.

WAITFOR "READY", 5 seconds : fail;LOG 'NOTE: Logged onto z/OS. Starting remote WPS now...';

Il prompt successivo che ci si aspetta è il prompt READY che indica che l'autenticazione è completae che la sessione TSO è pronta a ricevere i comandi. Illustra una funzionalità dell'istruzioneWAITFOR, si ricevono più righe prima che arrivi il prompt READY, ma vengono analizzate e ignorate.Non è necessario includere un'istruzione WAITFOR per ogni riga di output generata dal processo diaccesso.

TYPE "altlib activate application " lf;WAITFOR 'ENTER Application library', 5 seconds :fail;TYPE "CLIST" lf;WAITFOR "ENTER a single dataset", 5 seconds :fail;TYPE "'WPS.V310.B31754.CLIST'" lf;WAITFOR "READY", 5 seconds : fail;type "TSOWPS OPTIONS('DMR WPSCOMPROTOCOL=WPS') TRACE" enter;

Guida dell’utente e riferimento a CommunicateVersione 4.0

40

Qui, si richiamano i comandi necessari per avviare WPS. La raccolta CLIST di WPS vienetemporaneamente aggiunta al percorso di ricerca di CLIST con il comando ALTLIB, il nome dellaraccolta specifica dipende dal numero di versione e build di WPS. Quindi, si richiama esplicitamentela TSOWPS CLIST. Potrebbe già essere stata spostata in una raccolta CLIST dell'utente, nel qualcaso non sarebbe necessario il comando ALTLIB. Per richiamare WPS come server per l'uso conWPS Communicate, l'opzione DMR è necessaria e mentre WPSCOMPROTOCOL ha come valorepredefinito WPS nella maggior parte delle installazioni, non nuoce essere espliciti. Finalmente,l'impostazione TRACE è opzionale e si può omettere se l'output di CLIST è troppo dettagliato.

WAITFOR "SESSION ESTABLISHED", 5 seconds : fail;LOG 'NOTE: WPS Communicate conversation established.';STOP;

Avendo avviato il processo di WPS, lo script attende la riga di output che indica che il server WPSè in esecuzione e attende la connessione secondaria. Questa riga contiene sempre la stringaSESSION ESTABLISHED e il percorso corretto attraverso lo script di accesso deve sempreterminare con un'istruzione WAITFOR. Una volta ricevuta questa riga, l'istruzione STOP terminal'elaborazione dello script di accesso, trasferendo il controllo di nuovo a WPS.

signoff:WAITFOR 'READY', 5 seconds : fail;TYPE 'LOGOFF' ENTER;WAITFOR "LOGGED OFF", 5 seconds : fail2;LOG 'NOTE: WPS Communicate conversation terminated.';STOP;

La presente sezione contiene le righe che vengono eseguite quando si verifica una SIGNOFF. Siriceverà un avviso che il processo di WPS sta per terminare, ma è necessaria una pausa per l'attesaal termine e per ricevere il prompt READY del TSO. Una volta ricevuto, viene simulata la digitazionedi un comando LOGOFF, in attesa del messaggio di conferma, prima del termine dello script conun'istruzione STOP.

fail:LOG "ERROR: Expected prompt not received";TYPE "LOGOFF" enter;

fail2:ABORT;

fail e fail2 sono etichette che annunciano il codice che viene attivato al mancato rilevamentodelle risposte previste, inclusi i tentativi di disconnessione. Segnalano le condizioni di errore che, seraggiunte, dovranno essere indagate ulteriormente.

4. Provare lo script di accesso.

Guida dell’utente e riferimento a CommunicateVersione 4.0

41

Avendo scritto uno script di accesso di base e avendolo salvato in un percorso noto, è necessarioprovarlo effettuando una connessione ad esso. Questa operazione richiede un semplice programmadi WPS come:

filename rlink '<path to signon script>';

%let HOST=zoshost1;%let USER=XXXX;%let PASSWORD=XXXX;

signon HOST;rsubmit;%PUT &SYSHOSTNAME;endrsubmit;signoff;

Sarà necessario sostituire l'istruzione filename rlink con il percorso completo allo script diaccesso, e immettere il nome dell'host, insieme ad un nome utente e ad una password idonei per laregistrazione nell'host z/OS. Questi dovrebbero essere identici a quelli usati in precedenza durantel'accesso manuale.

Se tutto procede bene, si dovrebbe creare un registro di WPS privo di errori. Vi sarà un ulterioreoutput di debug a causa delle istruzioni ECHO e TRACE nello script di accesso, ma se l'accesso èriuscito, tali istruzioni si possono commentare, inserendo /* */ intorno ad esse, oppure eliminareper rendere l'output meno dettagliato. La variabile della macro &SYSHOSTNAME verrà risolta dall'hostremoto e il suo valore verrà scritto nel registro locale di WPS, dimostrando che la connessione el'accesso sono stati completati correttamente.

Esempio di script di autenticazione Telnet

TRACE ON; ECHO ON;

LOG "NOTE: Signon script entered.";

IF signoff THEN GOTO signoff;

WAITFOR "ENTER USERID -", 5 seconds : fail;TYPE "&USER" ENTER;

WAITFOR "ENTER CURRENT PASSWORD", 5 seconds : fail;TYPE "&PASSWORD" ENTER;

WAITFOR "ENTER ACCOUNT NUMBER", 5 seconds : fail;TYPE "WPS" ENTER;WAITFOR "YOU MAY CHANGE IT", 5 seconds : fail;TYPE ENTER;

WAITFOR "READY", 5 seconds : fail;LOG 'NOTE: Logged onto z/OS... Starting remote WPS now.';

Guida dell’utente e riferimento a CommunicateVersione 4.0

42

TYPE "altlib activate application " lf;WAITFOR 'ENTER Application library', 5 seconds :fail;TYPE "CLIST" lf;WAITFOR "ENTER a single dataset", 5 seconds :fail;TYPE "'WPS.V310.B31754.CLIST'" lf;WAITFOR "READY", 5 seconds : fail;type "TSOWPS OPTIONS('DMR WPSCOMPROTOCOL=WPS') TRACE " enter;

WAITFOR "SESSION ESTABLISHED", 5 seconds : fail;LOG 'NOTE: WPS Communicate conversation established.';STOP;

signoff:WAITFOR 'READY', 5 seconds : fail;TYPE 'LOGOFF' ENTER;WAITFOR "LOGGED OFF", 5 seconds : fail2;LOG 'NOTE: WPS Communicate conversation terminated.';STOP;

fail:LOG "ERROR: Expected prompt not received";TYPE "LOGOFF" enter;

fail2:ABORT;

SSH (Secure Shell) da un clientWindowsLa presente sezione contempla l'uso di SSH sia con WPS Communicate che con WPS Link alloscopo di creare e mantenere le connessioni tra server e client.

Nota:Le differenze in uso tra WPS Communicate e WPS Link vengono evidenziate ove opportuno.

Prima di accedere ad un host remoto tramite WPS Communicate o WPS Link, è importante verificaredi poter accedere all'host remoto manualmente tramite un client SSH esterno come PuTTY. Ciòdimostra che è possibile almeno connettersi al computer tramite il protocollo SSH e che il proprio IDutente e password sono validi.

Nota:Se si intende utilizzare Autenticazione della chiave pubblica (pag. 50) e le chiavi non sonogià state generate nel server, è possibile anche desiderare di scaricare PuTTYgen (consultareGenerazione di chiavi tramite PuTTYgen (pag. 51)). Se si intende utilizzare chiavi pubblichecon una passphrase e si sta utilizzando WPS Communicate, sarà anche necessario scaricare unagente portachiavi come Pageant (consultare Autenticazione della passphrase tramite Pageant (pag.63)). L'uso di un tale agente per le passphrase non è necessario con WPS Link, sebbene possaessere desiderabile se si sta effettuando la connessione a più server.

Guida dell’utente e riferimento a CommunicateVersione 4.0

43

Se si usa WPS Link e si ha già una chiave privata e si desidera applicarla, procedere nel modoseguente:

1. Nel menu principale di WPS Workbench, selezionare Finestra ➤ Preferenze e nel riquadro sinistrodella finestra di dialogo Preferenze successiva, espandere i nodi Generale ➤ Connessioni direte ➤ SSH2.

2. Selezionare la scheda Gestione chiavi della finestra di dialogo Preferenze:

3. Fare clic su Carica chiave esistente....4. Selezionare la chiave privata necessaria e selezionarla per visualizzare la schermata mostrata nel

seguente esempio:

Guida dell’utente e riferimento a CommunicateVersione 4.0

44

5. Se si desidera applicare una passphrase al file della chiave privata, completare i campi Passphrasee Conferma passphrase.

6. Fare clic su OK per salvare le modifiche e chiudere la finestra Preferenze.

Autenticazione della password (usando PuTTY) eaccesso tramite WPSL'accesso tramite SSH manuale offre l'opportunità di eseguire la convalida della chiave dell'host. Peruna maggiore sicurezza, WPS esegue la convalida della chiave dell'host durante l'accesso tramiteSSH. Tuttavia, WPS non ha nessun meccanismo di interagire con l'utente per accettare nuove chiavidell'host o richiedere un evidente cambio di chiave. Al contrario, WPS dipende dall'accettazione dellachiave dell'host già eseguita da un client SSH esterno e convaliderà la chiave dell'host che riceve conlo stesso database che viene utilizzato dal client SSH esterno. Nei client di Windows, WPS utilizzerà,per impostazione predefinita, il database della chiave dell'host PuTTY archiviato nel registro di sistemadi Windows, in modo che sia necessario accedere all'host remoto tramite il client SSH PuTTY perconvalidare la chiave dell'host e aggiungerla al database di chiavi dell'host, prima di tentare di effettuareuna connessione a WPS.

1. Avviare il client PuTTY e immettere il nome host nel campo di immissione Nome Host (o indirizzoIP) principale:

Guida dell’utente e riferimento a CommunicateVersione 4.0

45

2. Espandere la pagina di configurazione SSH ➤ Auth (Autenticazione) dall'elenco di categoriaa sinistra e assicurarsi che non sia selezionato niente in Authentication Methods (Metodi diautenticazione) e che il campo Private key file for authentication (File della chiave privata perl'autenticazione) sia vuoto:

Guida dell’utente e riferimento a CommunicateVersione 4.0

46

3. Selezionare la pagina GSSAPI e assicurarsi che Attempt GSSAPI authentication (Tentaautenticazione GSSAPI) non sia selezionata:

Guida dell’utente e riferimento a CommunicateVersione 4.0

47

Questi controlli garantiscono che solo l'autenticazione della password sia utilizzata e che nonabbiamo selezionato inavvertitamente un meccanismo di autenticazione più complesso.

4. Fare clic su Open (Apri) e, se richiesto, immettere la password e premere INVIO.

Se è la prima volta che si è effettuato l'accesso a questo host specifico, verrà visualizzato un avvisodel seguente tipo:

Guida dell’utente e riferimento a CommunicateVersione 4.0

48

A questo punto, è necessario confermare con l'amministratore di sistema che è realmente lacorretta impronta digitale per l'host e, presupponendolo, fare clic su Yes (Sì) per accettare la chiavein modo permanente. Questo consentirà dopo a WPS di eseguire la convalida della chiave dell'hosttramite la stessa chiave memorizzata nella cache. Se tutto ha funzionato, si accederà tramiteuna sessione terminale all'host remoto. La chiave dell'host sarà stata convalidata e archiviata nelregistro di sistema di Windows che si trova dove i componenti di WPS lo andranno a cercare. Oraè possibile disconnettersi in sicurezza, sapendo che all'avvio successivo di WPS, si potrà accedereallo stesso server remoto, estraendo automaticamente la chiave dell'host convalidata dal registro disistema di Windows per eseguire la convalida.

Nota:Non fraintendere questa convalida della chiave dell'host con l'autenticazione della chiavepubblica, perché sono due cose completamente separate. La convalida della chiave dell'host dàsemplicemente l'opportunità di confermare che l'host a cui si sta effettuando la connessione siarealmente l'host a cui si intende effettuare la connessione.

5. Se si sta utilizzando WPS Link, creare la connessione host necessaria e il server dell'host remototramite WPS Workbench. Se si utilizza WPS Communicate, accedere a WPS tramite l'istruzioneSIGNON per cui è necessario specificare l'opzione dell'istruzione IDENTITYFILE o l'opzione disistema SSH_IDENTITYFILE, per esempio:

SIGNON <servername> SSH USERNAME="<username>"password="<password>"LAUNCHCMD="/home/installs/wps-3.2/bin/wps -dmr ";

RSUBMIT;%PUT &SYSHOSTNAME;ENDRSUBMIT;SIGNOFF;

Guida dell’utente e riferimento a CommunicateVersione 4.0

49

In alternativa:

OPTIONS SSH_IDENTITYFILE="C:\Users\techwriter\.ssh\wpscommunicate.ppk";SIGNON <servername> SSH password="<password>"LAUNCHCMD="/home/installs/wps-3.2/bin/wps -dmr";

RSUBMIT;%PUT &SYSHOSTNAME;ENDRSUBMIT;SIGNOFF;

Nota:Non è possibile utilizzare IDENTITYFILE o SSH_IDENTITYFILE se si sta utilizzando Autenticazionedella passphrase tramite Pageant (pag. 63).

Avviare la sintassi dei comandiSe ci si connette a un server SSH per Windows, è necessario un percorso di comandi di avvio in stileWindows. In questo esempio, le virgolette sono necessarie perché il percorso include spazi:

'C:\Program Files\World Programming\WPS\3\bin\wps' -dmr

Se si sta effettuando una connessione ad un server UNIX/Linux, il percorso potrebbe essere:

/home/installs/wps-3.2/bin/wps -dmr

Miglioramento dell'autenticazione del nome utente/dellapasswordFinora gli esempi di accesso tramite WPS con SSH si sono basati su un'istruzione SIGNON checontiene direttamente il nome utente e la password. Non è la situazione ideale, perché significaarchiviare informazioni dettagliate riservate in un file di origine.

Attualmente, WPS non supporta la richiesta di credenziali. Tuttavia, la password può essere offuscatacon PROC PWENCODE.

Nota:Non è un metodo di crittografia avanzata. WPS attualmente supporta il meccanismo BASE64 perl'offuscamento.

Per utilizzare PROC PWENCODE con un'istruzione SIGNON:

1. Eseguire il seguente programma per codificare la password:

proc pwencode in="<password>" out=log;run;

Guida dell’utente e riferimento a CommunicateVersione 4.0

50

Questo programma produce un registro simile a quello riportato di seguito:

43 proc pwencode in=<password> out=log;44 run;{sas001}dG9wc2VjcmV0NOTE: Procedure pwencode step took : real time : 0.004 cpu time : 0.000

Nota:Si esegue questo programma come un'attività non in linea.

2. Copiare e incollare la password codificata nel programma SIGNON:

SIGNON docserver SSH username="<username>"password="{sas001}dG9wc2VjcmV0" LAUNCHCMD="/home/installs/wps-3.2/bin/wps -dmr”;

Autenticazione della chiave pubblicaQuesto metodo è più sicuro di utilizzare una semplice password e talvolta è denominato autenticazionesenza password.

Con SSH, l'autenticazione che usa le chiavi non solo migliora la sicurezza in generale, ma anchenel caso di WPS Communicate, evita di avere nomi utente e password riservati al codice sorgente(persino sotto forma offuscata o crittografata).

Questo metodo di autenticazione conta su una coppia di chiavi crittografiche, laddove la chiave privatarisiede (e non lascia mai) il computer client e la chiave pubblica è installata nel server SSH a cui il clientsi deve connettere o, nel caso di Windows, al Bitvise SSH Server (da WPS 3.2 in avanti). Il protocolloSSH usa la coppia di chiavi per stabilire l'identità del client ed eseguire l'autenticazione.

I due metodi sono descritti in base alle chiavi che si possono generare in un client Windows:

• Generazione di chiavi tramite PuTTYgen (pag. 51)• Generazione di chiavi tramite WPS Workbench (pag. 54)

Seguendo la generazione delle chiavi pubbliche, si devono collocare nel server remoto secondoImplementazione delle chiavi pubbliche nel server SSH remoto (pag. 56) o nel caso di un serverWindows, Implementazione delle chiavi pubbliche in Bitvise SSH Server (pag. 58).

Se si desidera connettersi a più server, senza dover ricordare o immettere la password per ognisistema, è necessario anche utilizzare Autenticazione della passphrase tramite Pageant (pag.63).

È necessario poi verificare la validità delle coppie di chiavi secondo Verifica di accesso all'host remoto(tramite PuTTY) e accesso a WPS (pag. 61).

Guida dell’utente e riferimento a CommunicateVersione 4.0

51

Nota:È possibile utilizzare l'autenticazione delle chiavi pubbliche con WPS Communicate e WPS Link.Tuttavia, per WPS Communicate, se non si usa un agente portachiavi come Pageant, non può essereuna passphrase nel file delle chiavi private, dato che attualmente non vi è nessun meccanismointerattivo per richiederlo durante l'autenticazione di WPS.

Nota:È necessario assicurarsi che l'autenticazione delle chiavi pubbliche non è disabilitato nel computerclient.

Generazione di chiavi tramite PuTTYgenPer generare una coppia di chiavi, che è la combinazione della chiave privata e la chiave pubblica perla crittografia asimmetrica, procedere nel modo seguente:

Nota:Tenere presente che, come alternativa, è possibile anche usare WPS Workbench per generare lecoppie di chiavi (consultare Generazione di chiavi tramite WPS Workbench (pag. 54)).

1. Avviare lo strumento PuTTYgen (disponibile presso le stesse fonti di PuTTY).

Guida dell’utente e riferimento a CommunicateVersione 4.0

52

Importante:Si consiglia di utilizzare il parametro SSH-2 RSA con una lunghezza di chiavi minima di 2048.

2. Fare clic sul pulsante Generate (Genera) e spostare il mouse all'interno dell'area indicata pergenerare una casualità che servirà da seme per la coppia di chiavi:

3. Il sistema genera una coppia di chiavi:

Guida dell’utente e riferimento a CommunicateVersione 4.0

53

4. Se si desidera applicare una passphrase al file della chiave privata, completare i campi Keypassphrase (Passphrase chiave) e Confirm passphrase (Conferma passphrase). Non sarànecessario farlo se si utilizzerà Autenticazione della passphrase tramite Pageant (pag. 63).

Nota:Se si utilizza WPS Communicate, non immettere una passphrase, salvo che si utilizzeràAutenticazione della passphrase tramite Pageant (pag. 63). Se si utilizza WPS Link, èpossibile immettere una passphrase e usarla con o senza Autenticazione della passphrase tramitePageant (pag. 63).

5. Fare clic su Salva chiave privata. Se non si è immessa una passphrase, verrà richiesto diconfermare che si desidera salvare la chiave senza una passphrase. Il file risultante è in formatonativo PuTTY (*.PPK) e, se viene richiesto di salvare il file in una cartella, bisogna assicurarsi chesia archiviata nella cartella .ssh nel profilo utente.

Nota:Assicurarsi che le autorizzazioni nel file delle chiavi private siano tali che solo l'utente possaleggerla. Questo file è essenzialmente la password, quindi è importante che nessun altro possaaccedere al file.

Guida dell’utente e riferimento a CommunicateVersione 4.0

54

6. La chiave pubblica evidenziata nel passaggio 3 (pag. 52) contiene le informazioni necessarieper consentire ad un utente di verificare che un'altra parte possieda la corrispondente chiaveprivata. Non è necessario proteggere la chiave pubblica, ma bisogna salvarla copiandola nell'areadi montaggio e incollandola ad un file di testo normale, oppure selezionando Save public key(Salva chiave pubblica) per salvarlo nella cartella .ssh del profilo utente. È necessario quindiprocedere come in Implementazione delle chiavi pubbliche nel server SSH remoto (pag. 56) oImplementazione delle chiavi pubbliche in Bitvise SSH Server (pag. 58).

Nota:Se si utilizzerà WPS Link insieme a WPS Communicate, per evitare la necessità di due coppie dichiavi separate, è necessario avere una strategia coerente, vale a dire, evitare una passphrase inentrambi i casi oppure altrimenti creare una singola passphrase e associarla ad una singola coppiadi chiavi tramite Autenticazione della passphrase tramite Pageant (pag. 63).

Generazione di chiavi tramite WPS Workbench1. Nel menu principale di WPS Workbench, selezionare Finestra ➤ Preferenze e nel riquadro sinistro

della finestra di dialogo Preferenze successiva, espandere i nodi Generale ➤ Connessioni direte ➤ SSH2.

2. Selezionare la scheda Gestione chiavi della finestra di dialogo Preferenze:

Guida dell’utente e riferimento a CommunicateVersione 4.0

55

3. Fare clic su Genera chiave RSA....

Viene generata una coppia di chiavi, la chiave pubblica viene visualizzata in una casella di testo alcentro della finestra di dialogo, ad esempio:

4. Se si desidera applicare una passphrase al file della chiave privata, completare i campi Passphrasee Conferma passphrase. Non sarà necessario farlo se si utilizzerà Autenticazione dellapassphrase tramite Pageant (pag. 63).

Nota:Se si utilizza WPS Communicate, non immettere una passphrase, salvo che si utilizzeràAutenticazione della passphrase tramite Pageant (pag. 63). Se si utilizza WPS Link, èpossibile immettere una passphrase e usarla con o senza Autenticazione della passphrase tramitePageant (pag. 63).

5. Fare clic su Salva chiave privata. Se non si è immessa una passphrase, verrà richiesto diconfermare che si desidera salvare la chiave senza una passphrase. Quando viene richiestosalvare il file delle chiavi risultante in una cartella, è necessario assicurarsi che viene archiviatonella cartella .ssh nel profilo utente. Se non si desidera utilizzare il nome predefinito di id_rsa,assegnare al file un nome più significativo.

WPS Workbench visualizza una finestra di dialogo informativa che conferma di aver salvato il filedelle chiavi private, insieme al file delle chiavi pubbliche corrispondenti. Assegnare al file dellechiavi pubbliche lo stesso prefisso come il file delle chiavi private, ma aggiunge .pub ad esso, peresempio:

Guida dell’utente e riferimento a CommunicateVersione 4.0

56

Nota:Assicurarsi che le autorizzazioni nel file delle chiavi private siano tali che solo l'utente possaleggerla. Questo file è essenzialmente la password, quindi è importante che nessun altro possaaccedere al file.

6. Fare clic su OK per chiudere la finestra di dialogo Informazioni.7. Fare clic su OK per salvare le modifiche e chiudere la finestra Preferenze.8. La chiave pubblica che è visualizzata sullo schermo (per l'operazione di copia e incolla, se è

necessaria) e salvata in un file, contiene le informazioni necessarie per consentire ad un utentedi verificare che un'altra parte possieda la chiave privata corrispondente. È necessario quindiprocedere come in Implementazione delle chiavi pubbliche nel server SSH remoto (pag. 56) oImplementazione delle chiavi pubbliche in Bitvise SSH Server (pag. 58).

Nota:Se si utilizzerà WPS Link insieme a WPS Communicate, per evitare la necessità di due coppie dichiavi separate, è necessario avere una strategia coerente, vale a dire, evitare una passphrase inentrambi i casi oppure altrimenti creare una singola passphrase e associarla ad una singola coppiadi chiavi tramite Autenticazione della passphrase tramite Pageant (pag. 63).

Implementazione delle chiavi pubbliche nel server SSHremoto1. Accedere al computer remoto.2. Una volta eseguito l'accesso, è necessario configurare il server in modo che accetti la

chiave pubblica per l'autenticazione, quindi cambiarla nella directory .ssh e aprire il fileauthorized_keys.

Se questa è la prima chiave pubblica ad essere inserita nel file, potrebbe essere necessario primacreare la directory e il file, per esempio, eseguendo i seguenti comandi:

mkdir -p .sshtouch ~/.ssh/authorized_keys

3. Impostare le corrette autorizzazioni, per esempio:

chmod 600 ~/.ssh/authorized_keys

Guida dell’utente e riferimento a CommunicateVersione 4.0

57

Nota:È anche necessario assicurarsi che la directory $HOME e la directory .ssh abbiano le autorizzazioniadeguate sia al server che all'operazione specifica.

4. Ora è possibile aggiungere la chiave pubblica al file authorized_keys come nel seguenteesempio:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Se si dispone attualmente dell'accesso tramite SSH basato su password, configurato al server, esi dispone dell'utilità ssh-copy-id installata, basta semplicemente trasferire la chiave pubblicadigitando:

ssh-copy-id username@remote_host

Verrà richiesta la password dell'account utente nel sistema remoto. Dopo aver immesso lapassword, il contenuto della chiave ~/.ssh/id_rsa.pub verrà aggiunto alla fine del file ~/.ssh/authorized_keys dell'account utente. È possibile accedere all'account senza una password:

ssh username@remote_host

In alternativa, è possibile copiare e incollare la chiave pubblica da PuTTYgen o WPS Workbenchnel file authorized_keys, assicurandosi che termini su un'unica riga.

5. Verificare il contenuto di ~/.ssh/authorized_keys per assicurarsi che la chiave pubblica vengaaggiunta adeguatamente, immettendo ciò che segue nella riga di comando:

more ~/.ssh/authorized_keys

Il contenuto di un file ~/.ssh/authorized_keys tipico potrebbe essere simile a:

Guida dell’utente e riferimento a CommunicateVersione 4.0

58

Nota:Se si osserva con attenzione, è possibile riscontrare che il file in alto contenga quattro chiavipubbliche; ognuna comincia con ssh-rsa e termina con una frase simile a RSA-1024.

Implementazione delle chiavi pubbliche in Bitvise SSHServerSe si è inesperti in Bitvise SSH Server (consultare la documentazione Bitvise per i dettagli dellaconfigurazione specifica), si consiglia prima di assicurarsi che si possa stabilire una connessione SSHfunzionante prima di cambiare le impostazioni nel server. Se non è possibile connettersi al server SSHtramite la configurazione predefinita, ciò si verifica molto probabilmente a causa di un problema relativoalla rete o al firewall che sarà necessario risolvere prima di poterlo connettere. Nella sua configurazionepredefinita, Bitvise SSH Server accetta le connessioni nel numero di porta spesso utilizzato per i serverSSH: 22. Questa è l'unica porta necessaria per aprire nel firewall per connettersi al server SSH. Se siutilizza l'inoltro alla porta per effettuare il tunneling di altre applicazioni tramite SSH, non è necessarioaprire altre porte per le connessioni con tunnel. Tutte le connessioni con tunnel vengono inoltratetramite la sessione SSH, stabilite tramite la porta 22.

1. Quando ci si connette al Bitvise SSH Server con un client SSH per la prima volta, accedere con ilnome utente e la password di un account Windows che esiste nel computer in cui è in esecuzioneil server SSH. Per accedere ad un account del dominio Windows, specificarlo in formato domain\account.

È possibile utilizzare il client SSH per accedere al Bitvise SSH Server, a condizione che supporti laversione 2 del protocollo SSH.

2. Dopo essersi assicurati che la chiave pubblica sia stata salvata in un file, trasferirlo al computer incui Bitvise SSH Server è installato o al computer da cui si gestisce il server SSH in modalità remotatramite Bitvise SSH Server.

3. Aprire SSH Server Control Panel (Pannello di controllo del server SSH), quindi importare lachiave pubblica nelle impostazioni dell'account utente SSH, utilizzare Open easy settings (Apriimpostazioni facili):

Guida dell’utente e riferimento a CommunicateVersione 4.0

59

o Edit advanced settings (Modifica impostazioni avanzate):

Guida dell’utente e riferimento a CommunicateVersione 4.0

60

Guida dell’utente e riferimento a CommunicateVersione 4.0

61

Nota:Per gli account di Windows, Bitvise SSH Server supporta anche la sincronizzazione con ~/.ssh/authorized_keys, a condizione che questa funzionalità sia abilitata in Advanced SSH Serversettings (Impostazioni avanzate del server SSH), in Access control (Controllo di accesso). Sequesta funzionalità è abilitata, Bitvise SSH Server controllerà l'esistenza del file authorized_keysquando l'utente si disconnette. Se il file esiste, Bitvise SSH Server sostituirà tutte le chiavi pubblicheconfigurate per l'utente con le chiavi trovate in questo file.

Verifica di accesso all'host remoto (tramite PuTTY) eaccesso a WPS1. Verificare l'autenticazione tramite PuTTY come riportato di seguito.

a. Avviare il client PuTTY e immettere il nome host nel campo Nome host:

Guida dell’utente e riferimento a CommunicateVersione 4.0

62

b. Selezionare la pagina di configurazione SSH ➤ Auth (Autenticazione) dall'elenco di categoriaa sinistra e verificare che nulla sia selezionato in Authentication methods (Metodi diautenticazione), salvo che si verifichi Autenticazione della passphrase tramite Pageant (pag.63), nel qual caso bisogna selezionare Attempt authentication using Pageant (Tentaautenticazione tramite Pageant).

c. Nel campo Private key file for authentication (File di chiavi private per autenticazione),immettere il nome del file delle chiavi private generato tramite Generazione di chiavi tramitePuTTYgen (pag. 51) o Generazione di chiavi tramite WPS Workbench (pag. 54).

d. Fare clic su Open (Apri), sarà autenticata tramite la combinazione di una coppia di chiavi e siaprirà una finestra della console. La finestra visualizza una notifica sul metodo di autenticazione.

Nota:Se viene richiesta una password, non è riuscita l'autenticazione della chiave pubblica.

Guida dell’utente e riferimento a CommunicateVersione 4.0

63

2. Se si completa l'autenticazione della chiave pubblica, e se si sta utilizzando WPS Link, creare laconnessione host necessaria e il server dell'host remoto tramite WPS Workbench. Se si utilizzaWPS Communicate, accedere a WPS tramite la chiave privata, tramite l'istruzione SIGNONper cui è necessario specificare l'opzione dell'istruzione IDENTITYFILE o l'opzione di sistemaSSH_IDENTITYFILE, per esempio:

SIGNON <servername> SSH USERNAME="<username>"IDENTITYFILE="C:\Users\techwriter\.ssh\wpscommunicate.ppk"LAUNCHCMD="/home/installs/wps-3.2/bin/wps -dmr ";

In alternativa:

OPTIONS SSH_IDENTITYFILE="C:\Users\techwriter\.ssh\wpscommunicate.ppk";SIGNON <servername> SSH username="<username>"LAUNCHCMD="/home/installs/wps-3.2/bin/wps -dmr";

Nota:Non è possibile utilizzare IDENTITYFILE o SSH_IDENTITYFILE se si sta utilizzando Autenticazionedella passphrase tramite Pageant (pag. 63).

Autenticazione della passphrase tramite PageantWPS Communicate non supporta la lettura dei file delle chiavi private che sono stati salvati sotto formacrittografata con una passphrase. Tuttavia, è ancora possibile utilizzare le coppie di chiavi private diquesta forma se si usa un agente portachiavi. Si presuppone che l'utente utilizzi Pageant in Windows.

Un agente portachiavi è una utilità che esegue nel computer client e archivia il file delle chiavi pubblichedecrittografate. Il client SSH (o WPS quando si esegue un accesso tramite SSH) contatta l'agente peruna chiave pubblica da utilizzare quando ci si connette ad un particolare host. Sebbene sia necessariatuttavia una password per decrittografare la chiave privata, questa è solo richiesta una volta: quandol'agente portachiavi apre per la prima volta la chiave privata.

Questa procedura presuppone di aver già generato una coppia di chiavi con una passphrase edistribuito la chiave pubblica nel server SSH remoto (per UNIX/Linux) o nel Bitvise SSH Server (perWindows).

Procedere nel modo seguente:

1. Eseguire lo strumento Pageant e fare clic con il pulsante destro del mouse sull'icona della barradelle applicazioni e scegliere View Keys (Visualizza chiavi) o Add Key (Aggiungi chiave) peraggiungere il file della chiave privata.

Guida dell’utente e riferimento a CommunicateVersione 4.0

64

A questo punto, verrà richiesta la passphrase per il file della chiave privata.2. Pageant si apre e lo decrittografa, consentendo ai client (come il normale programma PuTTY o

WPS) per richiedere l'elenco di identità caricato per l'autenticazione.

Nota:WPS rileva automaticamente se o meno Pageant è in esecuzione.

SSH (Secure Shell) da un client UNIXPrima di accedere ad un host remoto tramite WPS Communicate o WPS Link, è importante verificaredi poter accedere all'host remoto manualmente tramite SSH. Ciò dimostra che è possibile almenoconnettersi al computer tramite il protocollo SSH e che il proprio ID utente e password sono validi.

Nota:Se si intende usare Autenticazione della chiave pubblica (pag. 66), e le chiavi non sono state giàgenerate nel server, si potrebbe desiderare di utilizzare ssh-keygen (consultare Generazione di chiavitramite ssh-keygen (pag. 66)). Se si intende utilizzare chiavi pubbliche con una passphrase e sista utilizzando WPS Communicate, sarà anche necessario scaricare un agente portachiavi come ssh-agent (consultare Autenticazione della passphrase tramite ssh-agent (pag. 73)). L'uso di un taleagente per le passphrase non è necessario con WPS Link, sebbene possa essere desiderabile se sista effettuando la connessione a più server.

Autenticazione della password e accesso tramiteWPSWPS utilizzerà il database della chiave dell'host OpenSSH archiviata nel file ~/.ssh/known_hostsper impostazione predefinita. È necessario accedere all'host remoto tramite la riga di comando delclient OpenSSH per convalidare e accettare la chiave dell'host, aggiungendola al file known_hosts,prima di tentare di effettuare una connessione a WPS. Con OpenSSH, è anche possibile che un

Guida dell’utente e riferimento a CommunicateVersione 4.0

65

amministratore di sistema aggiunga le chiavi manualmente al file /etc/ssh/ssh_known_hosts,preferibilmente al file ~/.ssh/known_hosts.

Per accedere tramite SSH ad un host remoto e assicurarsi che venga impiegata l'autenticazione dellapassword:

1. Eseguire il seguente comando:

ssh -o PreferredAuthentications=password <hostname>

2. Verificare che si è ricevuta una richiesta di password:

<user>@<hostname>'s password:

Nota:È importante assicurarsi che sia utilizzata l'autenticazione della password e che l'host non sia, peresempio, configurata per accettare solo l'accesso tramite chiave pubblica.

3. Se si sta utilizzando WPS Link, creare la connessione host necessaria e il server dell'host remototramite WPS Workbench. Se si utilizza WPS Communicate, accedere a WPS tramite l'istruzioneSIGNON per cui è necessario specificare l'opzione dell'istruzione IDENTITYFILE o l'opzione disistema SSH_IDENTITYFILE, per esempio:

SIGNON <servername> SSH USERNAME="<username>"password="<password>"LAUNCHCMD="/home/installs/wps-3.2/bin/wps -dmr ";

RSUBMIT;%PUT &SYSHOSTNAME;ENDRSUBMIT;SIGNOFF;

In alternativa:

OPTIONS SSH_IDENTITYFILE="C:\Users\techwriter\.ssh\wpscommunicate.ppk";SIGNON <servername> SSH password="<password>"LAUNCHCMD="/home/installs/wps-3.2/bin/wps -dmr";

RSUBMIT;%PUT &SYSHOSTNAME;ENDRSUBMIT;SIGNOFF;

Nota:Non è possibile utilizzare IDENTITYFILE o SSH_IDENTITYFILE se si sta utilizzando Autenticazionedella passphrase tramite ssh-agent (pag. 73).

Guida dell’utente e riferimento a CommunicateVersione 4.0

66

Autenticazione della chiave pubblicaIl metodo descritto per cui è possibile generare le chiavi in un client UNIX è Generazione di chiavitramite ssh-keygen (pag. 66).

Seguendo la generazione delle chiavi pubbliche, si devono collocare nel server remoto secondoImplementazione delle chiavi pubbliche nel server SSH remoto (pag. 56) o nel caso di un serverWindows, Implementazione delle chiavi pubbliche in Bitvise SSH Server (pag. 58).

Se si desidera connettersi a più server, senza dover ricordare o immettere la password per ognisistema, è necessario anche utilizzare Autenticazione della passphrase tramite ssh-agent (pag.73).

È necessario poi verificare la validità delle coppie di chiavi secondo Verifica di accesso all'host remotoe accesso a WPS (pag. 72).

Nota:È possibile utilizzare l'autenticazione delle chiavi pubbliche con WPS Communicate e WPS Link.Tuttavia, per WPS Communicate, se non si usa un agente portachiavi come ssh-agent, non puòessere una passphrase nel file delle chiavi private, dato che attualmente non vi è nessun meccanismointerattivo per richiederlo durante l'autenticazione di WPS.

Nota:È necessario assicurarsi che l'autenticazione delle chiavi pubbliche non è disabilitato nel computerclient.

Generazione di chiavi tramite ssh-keygenIl programma ssh-keygen consente di creare chiavi RSA per l'uso da parte della versione 2 delprotocollo SSH. Il tipo di chiave da generare viene specificato dall'opzione -t. Se si richiama senzaargomentazioni, ssh-keygen genererà una chiave RSA per l'uso nelle connessioni SSH di protocollo 2.

1. Generare la coppia di chiavi. Nel seguente esempio, abbiamo effettuato l'accesso a hostA comewplusr:

ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/home/wplusr/.ssh/id_rsa):Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /home/wplusr/.ssh/id_rsa.Your public key has been saved in /home/wplusr/.ssh/id_rsa.pub.The key fingerprint is:f6:61:a8:27:35:cf:4c:6d:13:22:70:cf:4c:c8:a0:23 wplusr@hostA

Guida dell’utente e riferimento a CommunicateVersione 4.0

67

Nota:Non immettere una passphrase se si utilizza WPS Communicate. È necessario utilizzare unagente portachiavi per questo (consultare Autenticazione della passphrase tramite ssh-agent(pag. 73)). Nell'esempio precedente, la chiave privata è stata salvata in .ssh/id_rsa (questofile è di sola lettura ed è personale, quindi nessun altro deve visualizzarne il contenuto, datoche serve a decrittografare tutta la corrispondenza crittografata con la chiave pubblica) e lachiave pubblica in .ssh/id_rsa.pub. Questo è il file che bisogna aggiungere al file ~/.ssh/authorized_keys nel computer remoto.

2. Per distribuire la chiave pubblica, procedere come in Implementazione delle chiavi pubblichenel server SSH remoto (pag. 56) o Implementazione delle chiavi pubbliche in Bitvise SSHServer (pag. 58).

Implementazione delle chiavi pubbliche nel server SSHremoto1. Accedere al computer remoto.2. Una volta eseguito l'accesso, è necessario configurare il server in modo che accetti la

chiave pubblica per l'autenticazione, quindi cambiarla nella directory .ssh e aprire il fileauthorized_keys.

Se questa è la prima chiave pubblica ad essere inserita nel file, potrebbe essere necessario primacreare la directory e il file, per esempio, eseguendo i seguenti comandi:

mkdir -p .sshtouch ~/.ssh/authorized_keys

3. Impostare le corrette autorizzazioni, per esempio:

chmod 600 ~/.ssh/authorized_keys

Nota:È anche necessario assicurarsi che la directory $HOME e la directory .ssh abbiano le autorizzazioniadeguate sia al server che all'operazione specifica.

4. Ora è possibile aggiungere la chiave pubblica al file authorized_keys come nel seguenteesempio:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Se si dispone attualmente dell'accesso tramite SSH basato su password, configurato al server, esi dispone dell'utilità ssh-copy-id installata, basta semplicemente trasferire la chiave pubblicadigitando:

ssh-copy-id username@remote_host

Guida dell’utente e riferimento a CommunicateVersione 4.0

68

Verrà richiesta la password dell'account utente nel sistema remoto. Dopo aver immesso lapassword, il contenuto della chiave ~/.ssh/id_rsa.pub verrà aggiunto alla fine del file ~/.ssh/authorized_keys dell'account utente. È possibile accedere all'account senza una password:

ssh username@remote_host

In alternativa, è possibile copiare e incollare la chiave pubblica da PuTTYgen o WPS Workbenchnel file authorized_keys, assicurandosi che termini su un'unica riga.

5. Verificare il contenuto di ~/.ssh/authorized_keys per assicurarsi che la chiave pubblica vengaaggiunta adeguatamente, immettendo ciò che segue nella riga di comando:

more ~/.ssh/authorized_keys

Il contenuto di un file ~/.ssh/authorized_keys tipico potrebbe essere simile a:

Nota:Se si osserva con attenzione, è possibile riscontrare che il file in alto contenga quattro chiavipubbliche; ognuna comincia con ssh-rsa e termina con una frase simile a RSA-1024.

Implementazione delle chiavi pubbliche in Bitvise SSHServerSe si è inesperti in Bitvise SSH Server (consultare la documentazione Bitvise per i dettagli dellaconfigurazione specifica), si consiglia prima di assicurarsi che si possa stabilire una connessione SSHfunzionante prima di cambiare le impostazioni nel server. Se non è possibile connettersi al server SSHtramite la configurazione predefinita, ciò si verifica molto probabilmente a causa di un problema relativo

Guida dell’utente e riferimento a CommunicateVersione 4.0

69

alla rete o al firewall che sarà necessario risolvere prima di poterlo connettere. Nella sua configurazionepredefinita, Bitvise SSH Server accetta le connessioni nel numero di porta spesso utilizzato per i serverSSH: 22. Questa è l'unica porta necessaria per aprire nel firewall per connettersi al server SSH. Se siutilizza l'inoltro alla porta per effettuare il tunneling di altre applicazioni tramite SSH, non è necessarioaprire altre porte per le connessioni con tunnel. Tutte le connessioni con tunnel vengono inoltratetramite la sessione SSH, stabilite tramite la porta 22.

1. Quando ci si connette al Bitvise SSH Server con un client SSH per la prima volta, accedere con ilnome utente e la password di un account Windows che esiste nel computer in cui è in esecuzioneil server SSH. Per accedere ad un account del dominio Windows, specificarlo in formato domain\account.

È possibile utilizzare il client SSH per accedere al Bitvise SSH Server, a condizione che supporti laversione 2 del protocollo SSH.

2. Dopo essersi assicurati che la chiave pubblica sia stata salvata in un file, trasferirlo al computer incui Bitvise SSH Server è installato o al computer da cui si gestisce il server SSH in modalità remotatramite Bitvise SSH Server.

3. Aprire SSH Server Control Panel (Pannello di controllo del server SSH), quindi importare lachiave pubblica nelle impostazioni dell'account utente SSH, utilizzare Open easy settings (Apriimpostazioni facili):

Guida dell’utente e riferimento a CommunicateVersione 4.0

70

o Edit advanced settings (Modifica impostazioni avanzate):

Guida dell’utente e riferimento a CommunicateVersione 4.0

71

Guida dell’utente e riferimento a CommunicateVersione 4.0

72

Nota:Per gli account di Windows, Bitvise SSH Server supporta anche la sincronizzazione con ~/.ssh/authorized_keys, a condizione che questa funzionalità sia abilitata in Advanced SSH Serversettings (Impostazioni avanzate del server SSH), in Access control (Controllo di accesso). Sequesta funzionalità è abilitata, Bitvise SSH Server controllerà l'esistenza del file authorized_keysquando l'utente si disconnette. Se il file esiste, Bitvise SSH Server sostituirà tutte le chiavi pubblicheconfigurate per l'utente con le chiavi trovate in questo file.

Verifica di accesso all'host remoto e accesso a WPS1. Verificare che l'accesso al server remoto può avere luogo, ad esempio:

jsmith@local-host$ ssh jsmith@remote-hostLast login: Wed Oct 21 17:22:33 2015 from 192.168.1.2[Note: SSH did not ask for password.]

jsmith@remote-host$ [Note: You are on remote-host here]

Nota:Se viene richiesta una password, non è riuscita l'autenticazione della chiave pubblica.

2. Se si completa l'autenticazione della chiave pubblica, e se si sta utilizzando WPS Link, creare laconnessione host necessaria e il server dell'host remoto tramite WPS Workbench. Se si utilizzaWPS Communicate, accedere a WPS tramite la chiave privata, tramite l'istruzione SIGNONper cui è necessario specificare l'opzione dell'istruzione IDENTITYFILE o l'opzione di sistemaSSH_IDENTITYFILE, per esempio:

SIGNON <servername> SSH USERNAME="<username>"IDENTITYFILE="C:\Users\techwriter\.ssh\wpscommunicate.ppk"LAUNCHCMD="/home/installs/wps-3.2/bin/wps -dmr ";

In alternativa:

OPTIONS SSH_IDENTITYFILE="C:\Users\techwriter\.ssh\wpscommunicate.ppk";SIGNON <servername> SSH username="<username>"LAUNCHCMD="/home/installs/wps-3.2/bin/wps -dmr";

Nota:Non è possibile utilizzare IDENTITYFILE o SSH_IDENTITYFILE se si sta utilizzando Autenticazionedella passphrase tramite ssh-agent (pag. 73).

Guida dell’utente e riferimento a CommunicateVersione 4.0

73

Autenticazione della passphrase tramite ssh-agentWPS Communicate non supporta la lettura dei file delle chiavi private che sono stati salvati sotto formacrittografata con una passphrase. Tuttavia, è ancora possibile utilizzare le coppie di chiavi privatedi questa forma se si usa un agente portachiavi. Si presuppone che si stia utilizzando ssh-agent diOpenSSH per UNIX/Linux.

Il programma ssh-agent si esegue nel sistema client, agendo come archivio temporaneo di chiaviprivate sotto forma decrittografata. Quando il client SSH si autentica con un host remoto, puòrecuperare la chiave privata dall'agente, senza dover richiedere l'utente.

All'avvio, ssh-agent non contiene chiavi. Sono caricate dal disco utilizzando il comando ssh-add,al punto in cui l'utente immette la passphrase di ciascuna chiave per decrittografarla. L'agente puòarchiviare più chiavi simultaneamente, dalle quali il sistema sceglierà automaticamente la chiavecorretta per il server remoto.

La procedura presuppone di aver già generato una coppia di chiavi con una passphrase e distribuito lachiave pubblica nel server SSH remoto (per UNIX/Linux) o nel Bitvise SSH Server (per Windows).

Procedere nel modo seguente:

1. Avviare ssh-agent digitando la seguente nella sessione terminale locale:

eval $(ssh-agent)

Avvierà il programma agente e lo collocherà in background.

Nota:Il comando eval dichiara alla shell di eseguire l'output di ssh-agent come comandi shell. Quindi, iprocessi eseguiti da questa shell eredita le sue variabili di ambiente e hanno accesso all'agente.

2. Ora è necessario aggiungere la chiave privata all'agente, in modo che possa gestire la chiave:

ssh-add

Nota:Quando si esegue senza argomentazioni, ssh-add aggiunge automaticamente i file ~/.ssh/id_rsa, ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 e ~/.ssh/identity.

3. Viene richiesto di immettere la passphrase:

Enter passphrase for /home/demo/.ssh/id_rsa:Identity added: /home/demo/.ssh/id_rsa (/home/demo/.ssh/id_rsa)

Guida dell’utente e riferimento a CommunicateVersione 4.0

74

Nota:Se si desidera potersi connettere senza una password ad un server dall'interno di un altro server,sarà necessario inoltrare le informazioni della chiave SSH. Ciò consente all'utente di autenticarsiad un altro server tramite il server a cui si è connessi, utilizzando le credenziali nell'host locale.Per iniziare, ssh-agent deve essere in esecuzione ed è necessario aggiungere la chiave privataall'agente (vedere sopra). Quindi, è necessario connettersi al primo server usando l'opzione -A.Questa inoltra le credenziali al server per questa sessione:

ssh -A username@remote_host

Da qui, è possibile connettersi via SSH a qualsiasi altro host a cui la chiave SSH è autorizzata adaccedere. Si connetterà come se la chiave SSH privata si trovava in questo server.

Nota:WPS rileva automaticamente se o meno ssh-agent è in esecuzione.

Accesso singolo a KerberosÈ possibile configurare l'accesso singolo a Kerberos in modo da poter accedere da WPS ad un serverremoto senza fornire direttamente una password o un file di identità SSH.

Ciò richiede tipicamente modifiche alla configurazione del deamon SSH per ospitare Kerberos, i dettaglidei quali sono al di fuori dell'ambito di questo documento. Sarà necessario descrivere le modifichenecessarie con l'amministratore di sistema dell'host remoto, come configurare l'autenticazione Kerberosè un processo per un amministratore di sistema esperto.

La configurazione di Kerberos è anche necessaria nel computer client.

Prima di tentare di eseguire un accesso tramite Kerberos utilizzando WPS, potrebbe essere necessarioeseguire un accesso tramite Kerberos ad un host remoto utilizzando un client SSH tradizionale.

Una volta che sia possibile eseguire un accesso tramite Kerberos ad un host remoto tramite un clientSSH esterno, è possibile eseguire lo stesso accesso dall'interno di WPS. Non è necessario specificarele informazioni di autenticazione con l'istruzione SIGNON, ma bisogna verificare che non viene utilizzatané l'opzione dell'istruzione IDENTITYFILE, né l'opzione di sistema SSH_IDENTITYFILE.

L'esempio di codice di accesso potrebbe essere simile a:

SIGNON <servername> SSH LAUNCHCMD="/home/installs/wps-3.2/bin/wps -dmr";

Guida dell’utente e riferimento a CommunicateVersione 4.0

75

Client LinuxIl comando kinit eseguirà un accesso tramite Kerberos e verrà richiesta una password Kerberos.Questa azione acquisisce un ticket che viene memorizzato nella cache per un periodo durante il qualeil ticket si può trasferire in modo sicuro agli altri host come prova di identità, consentendo pertantol'autenticazione a quegli host senza che sia necessario fornire ulteriori informazioni di autenticazione:

kinitssh -o PreferredAuthentications=gssapi-with-mic <hostname>

La specifica dell'opzione PreferredAuthentications=gssapi-with-mic garantisce che SSHsolo tenta l'autenticazione GSSAPI e non tenta, ad esempio, di utilizzare l'autenticazione con la chiavepubblica che potrebbero altrimenti procedere senza richiedere una password.

Client WindowsÈ possibile configurare l'accesso singolo tramite Kerberos da WPS in Windows, ma vi sono alcunerestrizioni:

• La prima è che non è possibile essere un amministratore locale nel proprio computer. Se lo siè, Windows non rilascerà il Ticket-Granting Ticket di Kerberos, necessario per WPS in modo daeseguire l'autenticazione Kerberos.

• Il secondo è che bisogna impostare una chiave del Registro di sistema per consentire a Windowsdi elargire il Ticket-Granting Ticket, anche non si è il gruppo di amministratori locale. È necessarioimpostare il valore allowtgtsessionkey sotto la seguente chiave su 1:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters

Nota:Potrebbe essere necessario aggiungere questo valore al registro di sistema se non è già presente.

Nota:Le suddette restrizioni non si applicano a PuTTY, quindi se si può accedere con PuTTY, ma nonWPS, una delle suddette restrizioni è probabilmente la causa.

Guida dell’utente e riferimento a CommunicateVersione 4.0

76

Variabili di ambientePotrebbe essere necessario configurare le variabili di ambiente in modo da dare l'accesso a software diterzi in uso con una specifica installazione di WPS.

L'uso di WPS con applicazioni di terzi, quali i server di database, richiede che le informazionisull'ambiente debbano essere disponibili all'avvio di WPS, come:

• LD_LIBRARY_PATH o LIBPATH in sistemi Linux o Unix che puntano alle raccolte client• ODBCSYSINI che punta alle raccolte client unixODBC• PATH, per esempio che punta alle raccolte client in Windows o alle directory delle applicazioni in

sistemi Linux o Unix.

Il metodo consigliato da WPS per impostare tali variabili di ambiente è descritto in install-IT.

Una volta che l'amministratore di sistema ha configurato le variabili di ambiente necessarie, è possibileprovare se una sessione di comunicazione è disponibile, tramite il seguente programma in linguaggioSAS:

options ssh_hostvalidation=none;%let host=host port;SIGNON host ssh user="user" password="password" launchcmd="installation_path/bin/wps -dmr"; RSUBMIT; PROC OPTIONS; RUN;ENDRSUBMIT;

SIGNOFF;

Laddove il server di destinazione che ospita WPS viene identificato tramite la variabile della macroHOST e le credenziali utente per quel server sono argomentazioni al comando SIGNON. L'opzionedella password per il comando SIGNON è solo necessaria se si sta utilizzando l'autenticazione dellapassword SSH; se si sta utilizzando l'autenticazione tramite chiave, si richiede solo un ID utente.

Questo esempio è per una sessione di Communicate che si connette ad un server Linux; se si stautilizzando un server Windows, il percorso launchcmd richiederà un'alterazione. Quando vieneeseguito, questo programma si connette al server identificato, richiama WPS in quel server, visualizzale opzioni impostate per il server WPS remoto e poi si disconnette dal server.

Guida dell’utente e riferimento a CommunicateVersione 4.0

77

Avvisi legaliCopyright © 2002–2018 World Programming Limited.

Tutti i diritti riservati. Le presenti informazioni sono riservate e soggette a diritto d'autore. Non èpossibile riprodurre o trasmettere nessuna parte di questa pubblicazione, in qualsiasi forma o conqualsiasi mezzo, elettronico o meccanico, inclusa la fotocopiatura, la registrazione o eventuali sistemi diarchiviazione e recupero dati.

Marchi commercialiWPS e World Programming sono marchi registrati o marchi commerciali di World Programming Limitednell'Unione europea e altri paesi. (r) o ® indica un marchio comunitario.

SAS e tutti gli altri nomi di prodotti o servizi di SAS Institute Inc. sono marchi registrati o marchicommerciali di SAS Institute Inc. negli Stati Uniti e in altri paesi. ® indica la registrazione negli USA.

Tutti gli altri marchi commerciali sono proprietà dei rispettivi titolari.

Avvisi generaliWorld Programming Limited non è associata in alcun modo a SAS Institute.

WPS non è SAS System.

Le frasi "SAS", "linguaggio SAS" e "linguaggio di SAS” utilizzate in questo documento si usano inriferimento al linguaggio di programmazione spesso denominato in uno dei suddetti modi.

Le frasi "programma", "programma SAS" e "programma in linguaggio SAS" utilizzate in questo sitoWeb si riferiscono a programmi scritti in linguaggio SAS, definiti anche "script", "script SAS" o "script inlinguaggio SAS".

Le frasi "IML", "linguaggio IML", "sintassi IML”, "Interactive Matrix Language" e "linguaggio di IML"utilizzate in questo documento si usano in riferimento al linguaggio di programmazione spessodenominato in uno dei suddetti modi.

WPS include software sviluppato da terzi. È possibile trovare maggiori informazioni nel file THANKS oacknowledgments.txt inclusi nell'installazione di WPS.