Terminal: 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.
Auteur | Richard IJzermans | |
Datum | 15/01/2010 08:05 | |
Categorie | macOS | |
Reacties
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 :)