Simplifier les connexions SSH

Written by admin on May 26, 2014 Categories: Ligne de commande, Linux Tags: , , ,

Quand on se connecte toute la journée sur des dizaines et des dizaines de machines, il peut être intéressant de simplifier son processus de connexion, notamment en limitant le nombre de lettre à taper et en simplifient le noms des machines.

ssh => s

Un alias peu suffit :

alias s="ssh"

Mieux encore, on peut améliorer les connexions en affichant quelques infos glanées avant la connexion en ecrivant un script qui s’appellera “s”.

#!/bin/bash

if echo $1 | grep -q "@"; then
        SRV=$(echo $1 | sed -re "s/.*@(.*)/\1/" )
        USR=$(echo $1 | sed -re "s/(.*)@.*/\1/" )
else
        USR=defaultuser
        SRV=$1
fi

ENVIRONMENT=$(echo "Select environment from environment natural join server where server.server_name like '$SRV'" | mysql -h myhost -umyuser -pmypass mybase | sed '1d')
if [[ $ENVIRONMENT =~ "roduction" ]]; then
        # Print warning
        echo ""
        echo ""
        figlet $ENVIRONMENT
        echo ""
        echo ""
fi

ssh $USR@$SRV
exit 0

bashcomplation.d/ssh

Maintenant il est temps de simplifier le nom des machines pour ne pas a taper le nom complet. On édite le fichier /etc/bash_completion.d/ssh

have ssh &&
{
_ssh()
{
    local cur prev
    local -a config

    COMPREPLY=()
    cur=${COMP_WORDS[COMP_CWORD]}
    prev=${COMP_WORDS[COMP_CWORD-1]}

                from_name=$(echo "Select server_name from server where server_name like '%$cur%'" | mysql -hmyhost -umyuser -pmypass mybase | sed '1d' | xargs)
                from_ip=$(echo "Select ip_address from address where main = 1 and ip_address like '%$cur%'" | mysql -hmyhost -umyuser -pmypass mybase | sed '1d' | xargs)
                chCompgen=$(echo "$from_name $from_ip" | sed -e "s/^ //" -e "s/ $//")
                COMPREPLY=( $( compgen -W "$chCompgen" ) )

    return 0
}
complete -F _ssh ssh s
}

D’autres méthodes peuvent être adaptées pour récupérer le nom, un grep dans un fichier par exemple.

No Comments on Simplifier les connexions SSH

Leave a Reply

Your email address will not be published. Required fields are marked *