Auto Completion bei SSH

Geschrieben von andy • Freitag, 12. Oktober 2007 • Kategorie: combjuta

Früher gabs ja mal die Auto Completition bei SSH Verbindungen von Haus aus, heute ist das bei den meisten Distributionen nicht mehr so, da die Hostnamen und IP Adressen standardmässig gehasht abgespeichert werden. Dies kann man in der .ssh/knownhosts sehen, der Beginn ein jeder Zeile stellt den Hash von Hostnamen/IP dar.
Um nun die Auto Completion für SSH Verbindungen zu reaktivieren, muss man erstmal seine SSH Config anpassen. Dies geschieht einfach über das Einfügen/Anpassen des Eintrags "HashKnownHosts no" in der lokalen .ssh/ssh
config oder global in /etc/ssh/sshconfig.
Ist dies erledigt, so muss man noch seine bisherigen known
hosts löschen, indem man das knownhosts File in seinem Home Directory löscht oder leert. Nun fragt ssh beim neuen Verbindungsaufbau natürlich wieder nach, speichert den Host ab, diesmal aber nicht gehasht.

Die Bash Completion selbst aktiviert man nun für Ubtuntu/Debian oder ähnliche Systeme in dem File /etc/bash.bashrc. Dort entkommentiert man einfach den 3 Zeiler ab "#enable bash completion in interactive shells":

if [ -f /etc/bashcompletion ]; then
. /etc/bashcompletion
fi


Nach einem Neustart der Session funktioniert nun die Auto Completion mittels "ssh user@hostname", sobald der Hostname/IP einmal bekannt ist.
Bei SuSe beispielsweise ist das bash
completion Skript standardmässig nicht dabei, deshalb gibts das hier zum Download

Falls jemand das hier erklärte Skript zum Anpassen der Tabnamen in Konsole oder ähnliches verwendet, so muss er das dem bash_completion Skript noch publizieren. Dazu fügt ihr im Skript unter dem Punkt "# ssh(1) completion" Am Ende in der Zeile "shopt -u hostcomplete && complete -F _ssh ssh slogin sftpxhost autossh" einfach noch den entsprechenden Aufruf mit ein, dann wird dieses bei der Auto Vervollständigung auch berücksichtigt.

Tags für diesen Artikel: , , ,
| Top Exits (561)
893 Klicks
Twitter Bookmark Auto Completion bei SSH  at del.icio.us Facebook Google Bookmarks FriendFeed Digg Auto Completion bei SSH Technorati Auto Completion bei SSH wong it!

Namen der Tabs in Konsole automatisch dem Hostnamen anpassen

Geschrieben von andy • Dienstag, 9. Oktober 2007 • Kategorie: combjuta

Mittlerweile habe ich mich von xterm als Shell verabschiedet und nutze die KDE Konsole - Es ist einfach übersichtlicher und komfortabler an dieser Stelle ebenfalls mit Tabs zu arbeiten anstatt mit 10 und mehr Fenstern. Damit man dann wiederrum den Überblick über die Tabs (oder auch Sitzungen) nicht verliert, kann man die Tabnamen automatisch dem Hostnamen anpassen, auf den man sich mit SSH verbunden hat.
Das geschieht über folgendes kleines Skript:

#!/bin/bash
REALSSH=/usr/bin/ssh
if [ ! -z "$KONSOLE
DCOPSESSION" ]
then
# Use the last argument as the title
for arg in $@; do
NEW
TITLE="$arg"
done
OLDTITLE=dcop "$KONSOLE_DCOP_SESSION" sessionName
dcop "$KONSOLE
DCOPSESSION" renameSession "$NEWTITLE"
function restoretitle() {
dcop "$KONSOLE
DCOPSESSION" renameSession "$OLDTITLE"
}
# If SSH is interrupted (CTRL-C), restore the old title
trap "restoretitle" SIGINT
$REAL
SSH $
restoretitle
else
$REAL
SSH $

fi

Das Skript packt man einfach in /usr/local/bin und macht es ausführbar. Nun verbindet man sich einfach per "s $hostname" anstatt "ssh $hostname" und der Tabname wird umgeschrieben. Beendet man eine Session, so wird der Tabname wieder auf den lokalen Hostnamen zurückgesetzt.

Links:
Download Skript

Tags für diesen Artikel: ,
| Top Exits (240)
1704 Klicks
Twitter Bookmark Namen der Tabs in Konsole automatisch dem Hostnamen anpassen  at del.icio.us Facebook Google Bookmarks FriendFeed Digg Namen der Tabs in Konsole automatisch dem Hostnamen anpassen Technorati Namen der Tabs in Konsole automatisch dem Hostnamen anpassen wong it!

tweetbackcheck