SSH-Zugang ohne Passwort per Public-Key-Authentifizierung

Hier habe ich einen netten Einzeiler dazu gefunden, der auch noch auf das mounten entfernter Verzeichnisse per sshfs eingeht.

Zunächst mit

ssh-keygen

ein (passwortloses) RSA-Schlüsselpaar erstellen.

Dann einmal mit

cat ~/.ssh/id_rsa.pub | ssh user@server 'cat >>~/.ssh/authorized_keys'

auf dem Server einloggen.

Update: Alternativ macht dieser Befehl das gleiche:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@server

Beim nächsten Zugriff per

ssh user@server

ist dann auch kein Passwort mehr notwendig.

Kubuntu: PPA wieder entfernen

Testweise hatte ich bei meinem Kubuntu 10.10 mal KDE 4.6.1 ausprobiert.
Dazu hab ich das PPA der Kubuntu-Entwickler (hier) hinzugefügt:

add-apt-repository ppa:kubuntu-ppa/backports

Da gab es leider ein paar Probleme.

Um das Kubuntu-PPA wieder zu entfernen ist folgendes nötig:

apt-get install ppa-purge
ppa-purge ppa:kubuntu-ppa/backports

Danach werden wieder die originalen Kubuntu-Pakete installiert.

Horde-Webmail

Da ich bei meinem Webmail den Standard-SSL-Port auf einen anderen Wert geändert hatte, funktionierte die Anmeldung nach einem Update auf die neue Horde-Webmail-Version nicht mehr.
Dazu muss Horde angewiesen werden, den ursprünglichen Server-Port wieder zu verwenden, indem die Datei „horde/config/config.php“ so abgeändert wird:

$conf['server']['name'] = $_SERVER['SERVER_NAME'];
$conf['server']['port'] = $_SERVER['SERVER_PORT'];

Ein Update von Horde-Webmail machen:

Zunächst sollte der letzte Patch hier heruntergeladen werden. Anschließend loggt man sich per SSH auf den Server ein und wechselt in den bisherigen Webmail-Ordner. Dort aktualisiert dann der Befehl
patch -p1 < ../patch-horde-webmail-1.2.4-1.2.5
auf die neue Version.

Postfix, Dovecot und virtuelle Domains (ohne SQL-Datenbank)

Meinen E-Mail-Server habe ich teilweise nach der ISP-Mail-Anleitung eingerichtet. Da mir aber die dort vorgeschlagene Einrichtung mittel mysql-Datenbank zu aufwendig erschien, habe ich es etwas abgewandelt.

Zu einer bestehenden Domain sollte eine weitere hinzukommen, die jedoch E-Mails nur weiterleitet (es soll aber auch möglich sein, E-Mails mit dieser Domain zu verschicken). Dazu wird in die Datei /etc/postfix/main.cf
folgendes eingefügt:

virtual_alias_domains = anderedomain.de
virtual_alias_maps = hash:/etc/postfix/virtual

Letztere Datei (/etc/postfix/virtual) hat dabei folgenden Inhalt, womit eine Weiterleitung auf  beispiel@example.org eingerichtet wird.

info@anderedomain.de     beispiel@example.org

Soweit so gut. Mails an info@anderedomain.de werden nun weitergeleitet an beispiel@example.org.

Nun soll es auch möglich sein, E-Mails unter dem Namen info@anderedomain.de zu verschicken. Da die Authentifizierung bei Postfix über SASL von Dovecot eingerichtet ist, und kein Linux-Systemnutzer für die E-Mail-Adresse eingerichtet werden soll, eine Datei mit einem ähnlichen Schema wie /etc/passwd angelegt.

/var/vmail/conf/benutzerdb:

info@anderedomain.de:{plain}passWORT

Für einen ersten Test sollte das ausreichen. Sicherer ist natürlich, nur den MD5-Hash des Passwortes zu speichern. Dieser lässt sich hier berechnen. Für obiges Passwort würde entsprechend die Datei dann so aussehen:
info@anderedomain.de:{MD5}30b9de8ee60962fec6006a1ac474b733

Die Passwortdatei muss nun noch Dovecot bekannt gemacht werden. In der Datei /etc/dovecot/dovecot.conf wird dazu folgendes eingetragen:

passdb passwd-file {
args = /var/vmail/conf/benutzerdb
}

Dadurch kann sich ein E-Mail-Client gegenüber dem Server authentifizieren, ohne dass ein Linux-Benutzer angelegt werden musste.

Berkeley-Datenbank anschauen

Kürzlich wollte ich die Datenbankdatei von postgrey anschauen, um zu sehen, wer mir da schon alles ne E-Mail geschrieben hat. Die relevanten Daten stehen in der Datei /var/lib/postgrey/postgrey.db. Es handelt sich hierbei um eine Berkeley-Datenbank.

Um die Datei zu betrachten muss man in Debian zunächst das Paket db4.6-util installieren (mittels aptitude install db4.6-util).

Anschließend kann man sich den Inhalt der Datenbank menschenlesbar anzeigen lassen:
db4.6_dump -p /var/lib/postgrey/postgrey.db

SSL-Zertifikat mit Wildcard und ohne

Für meinen Webserver wollte ich ein SSL-Zertifikat haben, bei dem sämtliche Subdomains enthalten sind (wie z.B. http://notizen.stephangsell.de), aber auch die Hauptdomain selber (http://stephangsell.de, ohne www).
Damit das beides funktioniert, muss das Feld subjAltName im Zertifikat gesetzt sein.
Den nötigen Tipp hab ich hier gefunden.

Zunächst sollte ein Private Key erzeugt werden, aus welchem später das Zertifikat erstellt werden kann:
openssl genrsa -out ~/stephangsell.de.key 2048

Um für CACert.de eine Certificate-Signing-Request (CSR) zu erstellen, muss man zunächst eine Konfigurationsdatei für OpenSSL erstellen:

[ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req
[ v3_req ]
subjectAltName = $ENV::SUBJALTNAME
[ req_distinguished_name ]
commonName = Common Name (eg, YOUR name)
commonName_max = 64
emailAddress = Email Address
emailAddress_max = 64

Wir erstellen die Datei und speichern sie z.B. unter ~/myopenssl.cnf ab.

Der anschließend notwendige Aufruf von openssl lautet
SUBJALTNAME='DNS:*.stephangsell.de,DNS:*.example.net' openssl req \
-config ~/myopenssl.cnf \
-subj '/CN=stephangsell.de/emailAddress=admin@example.com' \
-new -extensions v3_req -key ~/stephangsell.de.key

Als Ausgabe erhält man das CSR, welches nun in das entsprechende Feld, z.B. bei CACert, kopiert wird. Daraus wird schließlich das unterzeichnete Zertifikat berechnet.


[Update]
Alternativ zu der hier beschriebenen Vorgehensweise lässt sich auch der CSRGenerator vom CACert-Wiki verwenden:
http://wiki.cacert.org/wiki/CSRGenerator

EXIF-Manipulationen mit jhead

Das Kommandozeilenprogramm jhead (aus dem Paket media-gfx/jhead) ist ein mächtiges Werkzeug um Fotos umzubenennen und das Datei- oder EXIF-Datum zu ändern.

Hat man beispielsweise vergessen, die Zeit der Digitalkamera auf Sommerzeit umzustellen, ändert folgender Befehl das EXIF-Datum sämtlicher Fotos um 1 Stunde nach vorne:
jhead -ta+1:00:00 *.jpg
Der Befehl
jhead -ft *.jpg
ändert schließlich auch das Dateidatum auf die Zeit aus dem EXIF-Kopf.
Mittels
jhead -nf%Y-%m-%d_%H-%M-%S *.jpg
kann man den Dateinamen von jhead umbenennen lassen in das Format Jahr-Monat-Tag_Stunde-Minute-Sekunde.

Besitzt die Kamera einen Beschleunigungssensor, um die Drehrichtung der Aufnahmen zu erkennen (Hoch- oder Querkant), so kann man die Fotos mit
jhead -autorot *.jpg
automatisch rotieren lassen. Dies ist praktisch für Programme, die den EXIF-Header bei der Anzeige nicht automatisch betrachten.

Alles zusammen geht natürlich auch gleichzeitig:

jhead -autorot -nf%Y-%m-%d_%H-%M-%S -ft *.jpg

oder, wenn die Dateien, wie im Fall der Panasonic-Kamera eine großgeschriebene Dateienung aufweisen:

jhead -autorot -nf%Y-%m-%d_%H-%M-%S -ft *.JPG

Vorteilhaft an letztem Befehl ist, dass automatisch in .jpg (also kleingeschrieben) umbenannt wird.

Bilder verkleinern geht mit

mogrify -quality 80 -resize 1920x1080 *.jpg

Die Seitenverhältnisse bleiben dabei intakt. Aber Achtung: die Dateien werden überschrieben, daher sollte man nur mit Kopien der Originaldateien arbeiten.

—–
EDIT:

Die Kamera speichert die Fotos als *.JPG ab, folgender Befehl ändert die Dateierweiterung auf .jpg:
mmv '*.JPG' '#1.jpg'

Rekursiv lassen sich sämtliche {jpg,JPG}-Dateien mit folgendem Befehl automatisch drehen:
find . -iname "*.jpg" -exec jhead -autorot {} \;

Amarok stürzt ab wegen falscher Xine-Version

Da ich das Berkano-Overlay nutze, ist bei mir momentan das Paket media-libs/xine-lib in der Version 1.2.9999_p247 installiert. Das verträgt sich leider nicht mit phonon (media-sound/phonon). D.h. bei der Installation von phonon wird trotz xine-USE-Flag das xine-Backend nicht installiert. Das ist die Fehlermeldung beim emergen von phonon:

— The following OPTIONAL packages could NOT be located on your system.
— Consider installing them to enable more features from this software.
+ Xine: xine-lib v1.1.90 was found on your system. This version contains major changes compared to 1.1.x and has not been tested properly for use with this backend. Consider downgrading to version 1.1.9.
+ Xine: libxine is needed to compile phonon xine backend

Leider bricht der Kompiliervorgang hier nicht ab. Es wird einfach ohne das Xine-Backend weiter gemacht. Leider braucht aber u.a. Amarok genau dieses.

Meine (zugegebenermaßen unbefriedigende) Lösung ist das Maskieren der neuen Xine-lib-Versionen in /etc/portage/package.mask/monolithic

=media-libs/xine-lib-1.2.9999_p235
=media-libs/xine-lib-1.2.9999_p240
=media-libs/xine-lib-1.2.9999_p247

Danach sollte ein emerge xine-lib erfolgen, um wieder die alte Version zu installieren. Anschließend kann man wieder phonon installieren mit emerge phonon

Jetzt sollte auch Amarok wieder laufen.