Menu

15 januari 2010

ScreencastTerminal: SSH alias toevoegen aan .profile

Wanneer je zoals mij veel gebruik maakt van SSH verbindingen onder Terminal, dan is het handig om een alias in je Terminal .profile aan te maken. Hierdoor hoef je alleen nog maar een naam en het password te onthouden.

Normaal gesproken gebruik je het volgende commando om een SSH verbinding te maken met een server:

ssh 192.168.1.200 -l root -p 722

Door het onderstaande toe te voegen aan je .profile in Terminal, kan je doormiddel van een zelf gekozen naam verbinding maken met de SSH server.

alias servernaam="ssh computernaam -l gebruikersnaam -p poort"

]Om bijvoorbeeld doormiddel van iphone onder Terminal een SSH verbinding te maken met mijn iPhone gebruik ik:

alias iphone="ssh 192.168.1.200 -l root -p 22"

De -p (poort) parameter is optioneel de meeste SSH verbindingen maken standaard gebruik van poort 22.

Nadat je het .profile hebt aangepast dien je deze actief te maken door je terminal sessie af te sluiten of door het commando: . ./.profile (let op er zit een spatie tussen de eerste en tweede punt).

Als het .profile actief is gemaakt kan je doormiddel van iphone in Terminal een verbinding maken met de SSH server.

Zie de screencast voor bovenstaand voorbeeld:




Gerelateerde tips:




Reacties


  • Joeri 20 februari 2009 om 13:57

    Wat ook erg handig is, is om een config bestand aan te maken in ~/.ssh (dus ~/.ssh/config)
    Daarin zet je vervolgens per blokje een host, user en HostName in.

    bv:
    host mijnserver
    user root
    HostName http://www.mijnserver-ergens-op-het-internet.nl

    Vervolgens hoef je alleen nog maar in de terminal te typen:
    ssh mijnserver

    De user en hostname worden dan automatisch geplaatst.

    Dit is vervolgens goed te combineren met een autocomplete voor de ssh (dan hoef je alleen te typen ssh mij[TAB] en staat er ssh mijnserver.

    Zet dan in de ~/.profile

    _complete_ssh_hosts ()
    {
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    comp_ssh_hosts=`cat ~/.ssh/known_hosts | \
    cut -f 1 -d ' ' | \
    sed -e s/,.*//g | \
    grep -v ^# | \
    uniq | \
    grep -v "\[" ;
    cat ~/.ssh/config | \
    grep "^host " | \
    awk '{print $2}'
    `
    COMPREPLY=( $(compgen -W "${comp_ssh_hosts}" -- $cur))
    return 0
    }
    complete -F _complete_ssh_hosts ssh

    En het leven wordt steeds makkelijker voor de terminal user :)

Een reactie toevoegen: