Also mal alles frisch gemacht.
Achtung: Es geht hier um einen Headless-Betrieb, an dem Raspi war noch nie Monitor & Keyboard, und wird wohl auch nie drankommen.
Wer den Raspi mit GUI verwenden will, z.B. als HTPC, kann dafür gerne einen extra Thread aufmachen.
Also, ich hatte bis dato die normale Raspian Distribution drauf, mit dem ganzen Overhead, der dabei ist.
Habe ein wenig gesurft, und bin auf diese Distri gestoßen: https://minibianpi.wordpress.com
Sehr klein und schlank, gefällt mir sehr gut.
Anleitungen, wie man aus so einem Image eine bootfähige SD macht, gibt es ja zu Hauf, wenn doch Bedarf besteht, einfach nachhaken.
Das schöne an der Distri ist, man wird nicht gegängelt, anders als bei Raspian (und leider auch Ubuntu und OS X) ist per default root als User aktiviert, die Sudo-Krücke bleibt einem von Anfang an erspart.
(Ansonsten: 1x "sudo passwd", dann ist der Spuk auch vorbei.)
Und: sie ist von Anfang an so konfiguriert, dass man kein RAM an die GPU vergeudet, die eh nicht genutzt wird.
Also, wenn man die bootfähige Distri gestartet hat, hat man den Raspi im Netz, aber wie kommt man nun drauf?
Man braucht erst einmal die IP des Raspi, dafür einfach euren Router oder DHCP Server (DHCP auf dem Raspi folgt später, wenn Interesse besteht) befragen.
Oder einen einfachen Network Scanner nehmen, unter OS X z.B. iNet Network Scanner. Den gibt es wohl auch für iOS, aber da ist der "Fing" meine erste Wahl, vor allem kostenlos
Alternativen für Linux und Windows trage ich gerne nach, wenn ihr mir passende liefert.
Unter Linux ginge übrigens auch ein Broadcast-Ping, aber ich denke, das wird dann schon wieder zu aufwändig (hier zu tippen )
Wenn ihr die IP habt, könnt ihr endlich auf die Kiste drauf, mit einem Terminal eurer Wahl.
Unter Linux gibt es da Auswahl ohne Ende, bei OS X gehört "Terminal" zu den Bordmitteln, iTerm ist eine nette Alternative.
Unter Windows ist wohl Putty das Mittel der Wahl.
Gesetzt den Fall, ihr habe nun die IP, z.B. 192.168.1.10, könnt ihr dann loslegen.
"ssh root@192.168.1.10".
Dann mit dem Passwort einloggen, default bei Minibian ist "raspberry", das solltet ihr natürlich sofort ändern.
("passwd" eintippen, dann werdet ihr nach dem neuen PW gefragt (2x, um Tippfehler auszuschliessen).
OK, ihr seid nun drauf. Aber jedes mal Passwort einhämmern ist nervig.
Also, erst mal die Verbindung wieder beenden (oder einfach ein 2. Terminal aufmachen).
Das gilt nur für OS X und Linux, Windows & Putty kann gerne jemand nachreichen, der das benutzt.
Ihr erstellt euch einen key: "ssh-keygen -t rsa". Dann die Vorgaben mit Enter bestätigen, KEIN Passwort vergeben!
Danach ssh-copy-id (fehlt leider bei OS X, packe ich ans Ende des Beitrags)
Also "ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.10", und ein letztes mal noch das Password eingeben.
Das ggf. noch von einem 2. Rechner aus machen, und dann im Raspi passwort-basierte Logins deaktiveren.
So, jetzt habt ihr die Grundvoraussetzungen.
Das minibian Image ist extrem klein, nutzt nur einen Bruchteil des Platzes auf der SD-Card.
Man könnte nun das Tool "raspi-config" nachinstallieren, aber das zieht schon wieder Sachen nach (alsa & Co) die man auf einem headless Raspi gar nicht braucht.
Es geht aber auch mit Bordmitteln, bei Interesse würde ich das als nächstes hier rein tippern, und danach eine einfache Lösung für das backup eines NAS.
Bei Interesse auch den Einsatz des Raspi als Ziel für ein TimeMchine-Backup.
Und natürlich auch, wie ihr euer angepasstes Image sicher und wiederhestellen könnt.
Es ist sehr schwierig, sich ein Linux komplett zu zerschiessen, aber ein Gerät, das headless nicht mehr bootet, macht wenig Spass, also besser vor Experimenten immer mal sichern.
Das Script ssh-copy-id für OS X:
Code: Alles auswählen
#!/bin/sh
# Shell script to install your public key on a remote machine
# Takes the remote machine name as an argument.
# Obviously, the remote machine must accept password authentication,
# or one of the other keys in your ssh-agent, for this to work.
#
# http://www.devthought.com/2009/09/19/get-ssh-copy-id-in-mac-os-x/
#
ID_FILE="${HOME}/.ssh/id_rsa.pub"
if [ "-i" = "$1" ]; then
shift
# check if we have 2 parameters left, if so the first is the new ID file
if [ -n "$2" ]; then
if expr "$1" : ".*\.pub" > /dev/null ; then
ID_FILE="$1"
else
ID_FILE="$1.pub"
fi
shift # and this should leave $1 as the target name
fi
else
if [ x$SSH_AUTH_SOCK != x ] && ssh-add -L >/dev/null 2>&1; then
GET_ID="$GET_ID ssh-add -L"
fi
fi
if [ -z "`eval $GET_ID`" ] && [ -r "${ID_FILE}" ] ; then
GET_ID="cat ${ID_FILE}"
fi
if [ -z "`eval $GET_ID`" ]; then
echo "$0: ERROR: No identities found" >&2
exit 1
fi
if [ "$#" -lt 1 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
echo "Usage: $0 [-i [identity_file]] [user@]machine" >&2
exit 1
fi
# strip any trailing colon
host=`echo $1 | sed 's/:$//'`
{ eval "$GET_ID" ; } | ssh $host "umask 077; test -d ~/.ssh || mkdir ~/.ssh ; cat >> ~/.ssh/authorized_keys" || exit 1
cat <<EOF
Now try logging into the machine, with "ssh '$host'", and check in:
~/.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
EOF