CMS, SSH, SCP and SFTP Support for z/VM

Sine Nomine is pleased to announce the availability of SSH v2, SCP and SFTP utilities for CMS systems. The commands provide the ability to perform encrypted file transfer and terminal sessions from CMS to other hosts supporting the SSH, SCP and SFTP protocols. Learn more about CMS.

***Our SSH v2 works with CMS***

The package provides:

– Code to implement the SSH v2, SCP and SFTP applications
– Full VM help files for all utilities, including CMS TASK help files, examples and Documentation.
– Installation with simple CMS commands
– Compatible with commercial and freeware Unix, Windows and other platform implementations of the SSH suite

How do I obtain the package?

CMS SSH, SCP and SFTP are available for purchase only. 

To help you decide whether the CMS SSH, SCP and SFTP tools are right for your organization, please examine the samples using the links below. These samples are actual help files from the product which demonstrate the encrypted terminal sessions and file transfer capabilities of the product.

PTERM is a line-mode terminal emulator for the CMS SSH package. It provides a way to interact with a terminal session over an encrypted channel. PTERM operates only in line mode; it does not provide 3270 or VT100 emulation.      

PTERM Sample

PTERM may be invoked in three ways:

  1. With the command(s) on the command line
  2. An interactive session where commands may be entered
  3. With the specification of a file containing commands to be executed by the remote target

 

Command Line

For example, to connect to a remote target using a private key (the CMS file ECDSA PPK on any accessed disk) and executing the command “ls *.c” PTERM is invoked as follows:

pterm -i ecdsa.ppk neale@example.com ls *.c

crjl.c            

dump.c            

lic.c             

mono-hwcap-s390x.c

njeDump.c         

ssh2trnk.c        

sshecc.c          

sshsha.c          

staging.c         

stfle.c           

test.c            

unwind.c 

Ready;        

Interactive Session

For example, to invoke an interactive session using a private/public key pair (note your local terminal settings may result in VTxxx or similar escape sequences appearing):

pterm -i ecdsa.ppk neale@example.com

Using username “neale”.                 

           

Last login: Thu Feb 16 21:04:02 2023 from

                                         

[neale@cts7xdev ~]$                     

stty -echo                                                            

stty -echo                                                            

[neale@cts7xdev ~]$                                                   

pwd                                                                   

/home/neale                                                           

[neale@cts7xdev ~]$                                                   

TERM=dumb                                                             

[neale@cts7xdev ~]$                                                   

w                                                                     

 21:07:18 up 2 days, 14:19,  1 user,  load average: 0.06, 0.10, 0.07  

USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT   

neale    pts/0    snavm1.devlab.si 21:05    6.00s  2.14s  0.17s w     

[neale@cts7xdev ~]$    

exit   

logout 

Ready;                                        

Batch

Using the file “PTERM BATCH”:

 

PTERM    BATCH    A1  F 80  Trunc=80 Size=4 Line=1 Col=1 Alt=0        

====>                                                                  

|…+….1….+….2….+….3….+….4….+….5….+….6….+….7..

pwd                                                                    

w                                                                       

date                                                                   

exit                                                                   

* * * End of File * * *                                                

 

PTERM is invoked using a private key:

pterm -i ecdsa.ppk -m pterm.batch neale@example.com                            

/home/neale                                                           

 21:10:07 up 2 days, 14:22,  0 users,  load average: 0.10, 0.10, 0.07 

USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT   

Thu Feb 16 21:10:07 EST 2023                                          

Ready;   

PSCP is a CMS implementation of the popular scp command available in many other environments. It provides a command-line client for      

encrypted file transfer between hosts originating from CMS to other machines. The client is able to translate between multiple code pages.    

 

PSCP Sample

 

PSCP enables the secure copying of files to and from a remote site. Wildcard characters are supported for both local and remote files.

 

Examples

 

  1. In this example the PSCP command is used to transfer a file from a remote target using a private key (the CMS file ECDSA PPK which resides on an accessed disk/filespace). Note, no translation is performed:

 

pscp -i ecdsa.ppk [mailto:neale@example.com:unwind.c]neale@example.com:unwind.c unwind.c.b                

 unwind.c.b                | 1 kB |   1.3 kB/s | ETA: 00:00:00 | 100%

                                                                    

 1321 bytes transferred                                             

 

  1. In this example, we use wildcarding to transfer all files on the ‘B’ disk with a filetype of ‘ASSEMBLE’ and the first two characters of the filename ‘DR’ to a remote target using private key. The files are translated to codepage ISO8859-1 from IBM-1047:

 

pscp -cp iso8859-1:ibm-1047-i ecdsa.ppk dr*.assemble.b neale@example.com:.                     

 dridftr.assemble          | 3 kB |   4.0 kB/s | ETA: 00:00:04 |  18% 

 dridftr.assemble          | 21 kB |  21.9 kB/s | ETA: 00:00:00 | 100%

                                                                       

 22400 bytes transferred                                               

                                                                       

 drrxgpd.assemble          | 3 kB |   4.0 kB/s | ETA: 00:00:14 |   6% 

 drrxgpd.assemble          | 63 kB |  63.0 kB/s | ETA: 00:00:00 | 100%

                                                                       

 64560 bytes transferred                                              

                                                                       

 drrxvsw.assemble          | 3 kB |   4.0 kB/s | ETA: 00:00:11 |   7% 

 drrxvsw.assemble          | 51 kB |  51.0 kB/s | ETA: 00:00:00 | 100%

                                                                       

 52240 bytes transferred                                              

                                                                       

 drutalt.assemble          | 3 kB |   4.0 kB/s | ETA: 00:00:03 |  21% 

 drutalt.assemble          | 18 kB |  18.4 kB/s | ETA: 00:00:00 | 100%

                                                                       

 18880 bytes transferred                                              

                                                                       

 drutorg.assemble          | 3 kB |   4.0 kB/s | ETA: 00:00:05 |  16% 

 drutorg.assemble          | 24 kB |  24.5 kB/s | ETA: 00:00:00 | 100%

 

25120 bytes transferred

                         

Ready;                  

The PSFTP command is used to create an interactive or batch session with a remote target and perform secure file transfer.

 

Examples

 

  1. Start an interactive session with a remote host and transfer a file ‘unwind.c’ to the disk/filespace accessed as ‘B’ on the CMS system. Perform standard ASCII/EBCDIC conversion:

 

psftp -i ecdsa.ppk neale@example              

Using username “neale”.                        

                                                

Remote working directory is /home/neale        

psftp>                                         

pwd                                            

Remote directory is /home/neale                

psftp>                                          

ascii                                          

Transfer in ASCII mode                         

psftp>                                         

get unwind.c unwind.c.b                        

remote:/home/neale/unwind.c => local:unwind.c.b

psftp>                                         

exit                                           

Ready; 

 

  1. Using a file ‘PSFTP BATCH’ containing a batch of commands for PSFTP

 

PSFTP    BATCH    A1  F 80  Trunc=80 Size=4 Line=1 Col=1 Alt=0        

====>                                                                  

|…+….1….+….2….+….3….+….4….+….5….+….6….+….7..

pwd                                                                    

ascii                                                                  

get unwind.c unwind.c.b                                                 

exit                                                                   

* * * End of File * * *                                                

 

Connect using a private key to a remote target:

 

psftp -i ecdsa.ppk -b psftp.batch neale@example

Using username “neale”.                         

                                                 

Remote working directory is /home/neale         

Remote directory is /home/neale                 

Transfer in ASCII mode                          

remote:/home/neale/unwind.c => local:unwind.c.b 

Ready(00002);