Fév 19 2016
SSH, Shell par défaut et Historique des Commandes sur AS400
QSHELL et PASE sur IBM i sont des outils intéressants mais restent limités par la fenêtre 5250 de taille fixe et sans ascenseur. Voyons comment les rendre plus agréables avec une connexion sécurisée SSH et quelques astuces.
Lancer le demon SSH
Considérons que SSH est déjà installé sur votre AS400 c’est-à-dire que vous avez 5733SC1 (OpenSSH, OpenSSL, zlib) dans LICPGM, vous pouvez démarrer le demon SSH avec cette commande:
STRTCPSVR SERVER(*SSHD)
Il ne semble pas y avoir d’option autostart pour le serveur TCP SSH.
J’ai fini par ajouter la commande au programme de démarrage QSTRUP pour que le serveur SSH démarre automatiquement à l’IPL. Vous pouvez vous connecter à votre AS400 avec Putty, téléchargeable gratuitement.
Shell SSH par défaut
Le shell par défaut est bsh qui est assez limité et peu commun sur d’autres systèmes d’exploitation. Il peut être changé dans le fichier sshd_config file (situé dans /QOpenSys/QIBM/UserData/SC1/OpenSSH/openssh-4.7p1/etc) en y ajoutant
#ibm pase for IBM i shell
ibmpaseforishell /QOpenSys/usr/bin/ksh
comme mentionné sur le site web IBM.
ksh est aussi requis pour avoir l’historique des commandes dans le terminal.
Historique de commandes
Une fois que ksh est le shell par défaut, vous pouvez configurer les touches fléchées pour naviguer dans l’historique des commandes. Plus besoin de retaper les commandes encore et toujours!
Dans le répertoire maison, créez un fichier .profile qui est chargé à chaque fois que vous vous connectez à l’AS400 en SSH:
if [[ $SHELL = "/QOpenSys/usr/bin/ksh" ]]; then
set -o emacs
alias __A=`echo "\020"` # up arrow = ^p = back a command
alias __B=`echo "\016"` # down arrow = ^n = down a command
alias __C=`echo "\006"` # right arrow = ^f = forward a character
alias __D=`echo "\002"` # left arrow = ^b = back a character
alias __H=`echo "\001"` # home = ^a = start of line
alias __Y=`echo "\005"` # end = ^e = end of line
fi
Redémarrez le demon SSH dela même manière que vous l’avez démarré et reconnectez-vous.
Sur la 1re ligne, nous vérifions que le shell est bien ksh puisque les changements faits ne s’appliquent qu’aux connexions SSH uniquement. Le .profile est aussi chargé par QSH et PASE (QP2TERM) mais leur shell par défaut n’est pas ksh.
Se connecter avec Putty est bien plus pratique que d’appeler QP2TERM dans une fenêtre 5250 à taille fixe!
Vous pouvez faire la même chose avec bash s’il a été installé sur votre system. Indication: Installer 5733OPS Option 3, gcc est livré avec bash, perl ou encore rpm en postintallation.