This is an old revision of the document!
Table of Contents
Read a file per line
# while read line; do echo "$line"; done < file.txt
Upper to Lower
Is pretty easy done
# cat /path/to/file.txt|tr '[:upper:]' '[:lower:]'
or
# echo "LadiDA"|tr '[:upper:]' '[:lower:]'
SED Examples
Delete a line with a string in it. For example old ssh-keys:
# sed -i "/myuser@old.laptop/d" .ssh/authorized_keys
Calculate
You can use the expr
# expr 1 + 2
and you will get 3 as result.
Also some more fancy stuff is possible. For example in a for-loop:
for i in {1..9}; do echo "10.20.30.$(expr $i + 40) servername-$i"; done
Bash redirection
stdout to file
# command > file.txt
stderr to file
# command 2> /dev/null
stdout AND stderr to file
# command &> file.txt
stdout to file AND stderr to file
# command > file.txt 2> /dev/null
stdout to stderr
# command 1>&2
stderr to stdout
# command 2>&1
SSH
Mehr Infos was man mit SSH alles machen kann, findet ihr hier.
how to loginfreies ssh:
ssh-keygen -t ecdsa cat .ssh/id_ecdsa.pub ssh-copy-id -i ~/.ssh/id_ecdsa.pub user@remote-system
–> auf alle Server kopieren die man ohne passwort betreten will. For der openssh Version 5.6 können noch kein ecdsa-Keys verwendet werden. Es müssen daher die “alte” dsa bzw. rsa Schlüssel genommen werden. Es ist allerdings auf eine entsprechende Länge zu achten.
Schlüssel sichern
Wenn man einen Schlüssel erzeugt hat und ihn ohne Passphrase schützt, kann man am Server noch eine weitere Sicherheitseinstellung vornehmen.
from="10.11.12.13" ecdsa-sha2-....
Das wird einfach vor dem Schlüssel im .ssh/authorized_keys geschrieben. Dann kann der Schlüssel nur noch von der IP benutzt werden.
ssh mit timeout
ssh -o ConnectTimeout=10 <hostName>
.ssh/config
Ein Beispiel für die ssh Konfiguration:
Host server
HostName 11.22.33.44
User myname
Port 22
Host *
ForwardX11 yes
ServerAliveInterval 30
Reverse-Tunnel
Auf die Maschine(serverA) auf die man zugreifen will:
ssh -R 4321:localhost:22 username@serverA
Danach kann man von serverA mit
ssh -p4321 localhost
auf serverB zugreifen oder je nach dem welcher Port Forgewarded wird auf diverse andere Dienste zugreifen.
Das ganze jetzt noch über einen Jumphost
ssh -R 1234:127.0.0.1:22 jumphost -t ssh -p 4321 -R 1234:127.0.0.1:1234 serverA
SOCKS proxy via a second Host
Einen SOSCKS-Proxy über einen Jumphost öffnen.
ssh -L 8001:localhost:8002 user1@machine1.example.org -t ssh -D 8002 user2@machine2.example.org
Der erste Port(8001) ist der, der lokal als Proxy-Port genutzt wird. Der Zweite wird nur mit zu Kommunikation zwischen Jumphost und dem eigenltich SOCKS benötigt.
X11 Forward
Das ist eigentlich recht simpel:
ssh -X server
Nach einer Minimalinstallation sind auf dem Server keinerlei Sachen für eine Handhanbung über GUI's installiert. Wenn man also via ssh ein Programm aufruft fehlen auch die entprechenden Fonts. Darum empfiehlt es sich folgendes Paket zu installieren:
yum install dejavu-lgc-sans-fonts.noarch -y
