Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: typo

...

‘vi’ and 'vim' text editors

Notes:

  • When typing text, press <ESC> once finished. In case you’re blocked, press also <ESC> before executing commands described below
  • both is editors use case sensitive commands

Request

Command

To quit without saving

Press ‘:’ then enter ‘q!’

To quit with saving

Press ‘:’ then enter ‘x’ or ‘wq’

Go to  top of file

Press ‘:’ then enter ‘0’

Go to last line

Press ‘G’

Search pattern

Press ‘/’ then enter your search text. Press then ‘n’ for next (forward) or ‘N’ for backward

Remove current character

Press ‘x’

Insert text

Press ‘i’ (press ESC once text completed)

Insert line

Press ‘o’ for a line below cursor, ‘O’ for a line above cursor (press ESC once text completed)

Delete a line

Press ‘dd’

 

‘gedit’ graphical editor

‘gedit’ is a graphical text editor, users familiar with Windows notepad should not encounter difficulties to use it.

Request

Command

To quit

close the window by clicking on the cross top right corner

Save file

Press <CTRL-S>

 

‘nano’ text editor

‘nano’ is a basic text editor, very simple to use and displaying available commands at the bottom of the screen. For example, to leave ‘nano’ , use ^X (press CTRL + X)

...

Info
titleNotes
  • The prompts will tell you where to execute the commands, "Tru64#" (root user) or "Linux#"  (root user)
  • Remember Linux/Unix is case sensitive
  • If hosts are not known by each other, fill the /etc/hosts file for example (using vi for example)
  • linuxhost represents the name of your CHARON server (can be any name you want)
  • tru64host represents the hostname of your Tru64 virtual machine

 

  • Generate the key

Linux# cd /root/.ssh
Linux# ssh-keygen -t

dsa

rsa

→ Do not specify a passphrase
Linux# ssh-keygen -e -f id_

dsa

rsa.pub > linuxhost.pub

 

  • Copy the linuxhost.pub file, or use copy/paste, in the /.ssh2 folder on the Tru64 host

  • Define the authorization file:

Tru64# cd /.ssh2
Tru64# echo "Key linuxhost.pub" >> authorization

 

  • Initialize the first ssh connection (answer 'yes' to confirm)

Linux# ssh tru64host date

then retry the same command to verify the trust is working.

(lightbulb) If an error occurs, you can check and clean the /root/.ssh/known_host file on the Linux host

How to setup ‘ssh’ trusts between Linux and VMS

Info
titleNotes
  • The prompts will tell you where to execute the commands, "VMS#VMS$" (system user) or "Linux#"  (root user)
  • Remember Linux/Unix is case sensitive, VMS is not
  • Linux: if VMS host is not known, add it to /etc/hosts for example
  • VMS: if Linux is not known, add it using: $ UCX SET HOST LINUX /ADDR=xx.xx.xx.xx

 

  • Enable SSH on the VMS server:

    VMS$ SET DEF SYS$LOGIN
    VMS$ @TCPIP$CONFIG

...

  • Select then:
    • Option 3 - Server components then enable and start service SSH, option 19
    • then Option 2 - Enable & Start service on this node

 


    • ...
      * Create a new default server host key? YES: YES
           Creating private key file: TCPIP$SSH_DEVICE:TCPIP$SSH.SSH2]HOSTKEY
           Creating public key file: TCPIP$SSH_DEVICE:TCPIP$SSH.SSH2]HOSTKEY.PUB
      ...

 

  • If VMS has to connect to Linux, configure the SSH CLIENT:

 

...
* Do you want to configure SSH CLIENT [NO]: YES
...

Select then:

  • Option 2 - Enable & Start service on this node
  • Exit with E twice

 

  • Copy these files from the default SSH user for the SYSTEM one:

 

VMS$ SET DEF SYS$LOGIN
VMS$ CREATE/DIR [.SSH2]
VMS$ COPY TCPIP$SSH_DEVICE:[TCPIP$SSH.SSH2]HOSTKEY [.SSH2]
VMS$ COPY TCPIP$SSH_DEVICE:[TCPIP$SSH.SSH2]HOSTKEY.PUB [.SSH2]
VMS$ COPY TCPIP$SSH_DEVICE:[TCPIP$SSH.SSH2]SSH2_CONFIG [.SSH2]
VMS$ EDIT [.SSH2]SSH2_CONFIG

(warning) Uncomment: BatchMode      yes

(warning) Find and set: AllowedAuthentications               publickey, password

 

  • Generate the key

    Generate the key on the Linux server and convert it to be readable by VMS

 

...
* Do you want to configure SSH CLIENT [NO]: YES
...


  • Linux# ssh-keygen -t

...

  • rsa

    → Do not specify a passphrase
    Linux# ssh-keygen -e -f /root/.ssh/id_

...

  • rsa.pub > /root/.ssh/

...

  • linuxserver.pub

 

  • Copy the generated file /root/.ssh/linuxserver.pub, (or use copy/paste , between putty session for example) to the VMS system in the SYS$SYSROOT:[SYSMGR.SSH2] directory

 

  • Copy the hostkey.pub file from the VMS system to the Linux one:

 

Linux# ssh system@VMS "type [.SSH2]HOSTKEY.PUB" >/root/.ssh/VMS.orig.pub

(warning) Enter YES then the VMS system password

 

...

Linux# ssh-keygen -i -f /root/.ssh/VMS.orig.pub >/root/.ssh/VMS.pub
Linux# cat /root/.ssh/VMS.pub >>/root/.ssh/authorized_keys

 

  • Define the VMS identification file:

 

VMS$ SET DEF SYS$SYSLOGIN
VMS$ SET DEF SYS$SYSROOT:[.SSH2]
VMS$ OPEN/WRITE TMP IDENTIFICATION.
VMS$ WRITE TMP "IDKEY HOSTKEY"
VMS$ CLOSE TMP

(warning) Do not forget the dot at the end of the identification file name

  • (lightbulb) If this folder does not exist, create it using the following command: $ CREATE /DIRECTORY SYS$SYSROOT:[SYSMGR.SSH2]

 

  • On the VMS system add the Linux server key to the authorized keys:

 


  • VMS$ SET DEF SYS$SYSLOGIN
    VMS$ SET DEF SYS$SYSROOT:[.SSH2]
    VMS$ OPEN/WRITE TMP AUTHORIZATION.

    (warning) If the file already exists, use /APPEND instead of /WRITE
    VMS$ WRITE TMP "KEY LINUXSERVER.PUB"
    VMS$ CLOSE TMP

    (warning) Do not forget the dot at the end of the authorization file name

 

  • Perform some tests (examples)
    (info) Charon server name "charon", vms system name "pluto":

    charon# ssh system@pluto "show system /noproc"
    OpenVMS V7.3-2 on node PLUTO 27-SEP-2013 11:50:14.37 Uptime 0 19:20:07

...

Div
classpagebreak

 

Shutdown guests with Expect tool

...

In case SSH cannot be used to perform clean shutdown of the guests, the "expect" tool can be used to connect to the console and , perform the login operation then and execute the shutdown command .depending on the console status (at login prompt, shell prompt or SRM prompt)

(warning) In  In this case the password is sent without encryption.

To facilitate use of "expect" for shutdown, an example is provided in the "guest_shutdown.exp" script located in the /opt/charon/utils folder. If you plan to customize the script, you'll have to create a copy and not use it directly as it will be overwritten in case of Toolkit upgrade.

Note

'telnet' and 'expect' packages must be installed in order to use this feature.

The following error message can be returned when stopping the virtual machine when trying to use the expect script example:

  • if expect package is not installed: "Stop script returned error code 126".
  • if telnet is not installed: "%EXPECT-F-NOSRM, Cannot continue, 'telnet' is not installed" then "Stop script returned error code 4"

Caution: the virtual machine process will be however killed by service management process

Warning

Console locked:

Any active session to the console must be killed before the "expect" script is executed.

(info) For example, if you are connected via "telnet" on the localhost/port (the kill is not done inside the expect script). See examples in the "/opt/charon/utils/charon_gstart.stop.example" file.

(warning) If the console is locked from another host (if you use putty for example), you will have to cancel the connection by yourself otherwise the shutdown will not be performed cleanly.

...

# path/script <port> <user> <password> <prompt> <opsys>

 

Parameters:

ParameterDescription
<port>telnet port number (example: 10003)
<user>username for login (must be able to perform shutdown)
<password>password
<prompt>shell prompt (including end space) or last characters of the prompt
<opsys>VMS or UNIX

 

Example:

Image RemovedImage Added

(info) Examples are given in the /opt/charon/utils/charon_gstart.stop.example file

...