BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Festplatten dauerhaft überwachen

Mit den smartmontools können nicht nur Festplatten auf Fehler überprüft, sondern mit der dazugehörigen smartd auch überwacht werden. Dazu müssen die smartmontools installiert sein. Diese findet man im FreeBSD Portbaum unter sysutils/smartmontools:

# cd /usr/ports/sysutils/smartmontools && make install clean

Nun kann eine Konfigurationsdatei für den smartd erstellt werden. Dazu wird zuerst die Vorlage kopiert:

# cp /usr/local/etc/smartd.conf.sample /usr/local/etc/smartd.conf

In der smartd.conf kann nun angegeben werden, welche Laufwerke überwacht werden sollen. Mit folgendem Eintrag werden alle gefundenen Laufwerke überwacht und Fehler und Warnungen werden an die angegebene E-Mailadresse gesendet:

DEVICESCAN -m <E-Mailadresse>

Nun kann manuell geprüft werden, welche Laufwerke gefunden werden und ob es smartd möglich ist, die Laufwerke zu überwachen. Der Test kann mit Ctrl + \ wieder beendet werden:

# /usr/local/sbin/smartd -d -c /usr/local/etc/smartd.conf
smartd version 5.37 [i386-portbld-freebsd6.1] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

Opened configuration file /usr/local/etc/smartd.conf
Drive: DEVICESCAN, implied '-a' Directive on line 23 of file /usr/local/etc/smartd.conf
Configuration file /usr/local/etc/smartd.conf was parsed, found DEVICESCAN, scanning devices
Device: /dev/ad4, opened
Device: /dev/ad4, found in smartd database.
Device: /dev/ad4, is SMART capable. Adding to "monitor" list.
Device: /dev/ad6, opened
Device: /dev/ad6, found in smartd database.
Device: /dev/ad6, is SMART capable. Adding to "monitor" list.
Monitoring 2 ATA and 0 SCSI devices
^\smartd received signal 3: Quit: 3
Memory still allocated for devices at exit is 0 bytes.
smartd is exiting (exit status 0)

Damit smartd automatisch gestartet wird, muss folgender Eintrag in der /etc/rc.conf gemacht werden:

smartd_enable="YES"

Nun kann smartd gestartet werden:

# /usr/local/etc/rc.d/smartd start

Alle Konfigurationsmöglichkeiten von smartd findet man in der Manpage smartd(8).

 Permalink

FreeBSD auf ZFS installieren

Möchte man FreeBSD auf ZFS installieren, so ist das noch nicht über die Installationsroutine möglich. Unter http://www.ish.com.au/solutions/articles/freebsdzfs findet man ein Anleitung wie man FreeBSD trotzdem auf ZFS installieren kann. Hier eine kleine Zusammenfassung: Um FreeBSD auf ZFS zu installieren, muss man mindestens FreeBSD 7 einsetzen. Man erstellt zuerst mit sysinstall einen Slice über die ganze Festplatte und anschliessend ein Label so, dass die Partition a 512 MB gross ist, und als / gemountet wird. Auch die Swappartition wird bereits erstellt. Im Rest des Slices wird eine Partition gelabelt, welche nicht formatiert und gemountet wird. In / wird dann ein minimal FreeBSD installiert.

Danach wird das installierte System im Single User Mode gestartet und die / Partition schreibend gemountet:

# mount -w / 
Nun kann auf dem freien Speicherplatz ein ZFS-Pool erstellt werden:

# zpool create tank /dev/ad0s1d
WARNING: ZFS is considered to be an experimental feature in FreeBSD.
ZFS filesystem version 6
ZFS storage pool version 6

Danach können die Dateisysteme für /usr, /var und /tmp erstellt werden:

# zfs create tank/usr
# zfs create tank/var
# zfs create tank/tmp

Mit folgendem Eintrag in der /etc/rc.conf wird das ZFS Kernelmodul beim Booten geladen:

# echo 'zfs_enable="YES"' >> /etc/rc.conf

Nun kann der Inhalt der root-Partition auf das ZFS-Dateisystem verschoben werden:

# find -x / | cpio -pmd /tank
471416 blocks

Da FreeBSD noch nicht von ZFS booten kann, muss die bestehende UFS-Partition als boot-Partition verwendet werden:

# rm -rf /tank/boot
# mkdir /tank/bootdir
# cd /tank
# ln -s bootdir/boot boot

In der /tank/etc/fstab muss nun der Eintrag für die UFS boot-Partition geändert werden:

/dev/ad4s1a  /bootdir        ufs     rw      1       1 

Nun muss in der /boot/loader.conf eingetragen werden, dass das ZFS root-Dateisystem beim Booten geladen werden soll:

# echo 'zfs_load="YES"' >>  /boot/loader.conf
# echo 'vfs.root.mountfrom="zfs:tank"' >> /boot/loader.conf

Zum Schluss müssen noch die ZFS-Mountpoints für /usr, /var und /tmp konfiguriert werden und dabei sichergestellt werden, dass /tank nicht gemountet wird, da dies nun das root-Dateisystem ist:

# zfs set mountpoint=/tmp tank/tmp
# zfs set mountpoint=/usr tank/usr
# zfs set mountpoint=/var tank/var
# zfs set mountpoint=legacy tank

Jetzt sind alle Einstellungen gemacht und FreeBSD kann neu gestartet werden:

# shutdown -r now

Falls man möchte, können nun nicht gebrauchte Dateien aus der UFS boot-Partition gelöscht werden:

# cd /bootdir
# chflags noschg var/empty
# rm -rf usr var tmp COPYRIGHT home compat media mnt proc bin cdrom dev dist etc lib libexec root sbin sys

Mehr Informationen dazu findet man im FreeBSD wiki: http://wiki.freebsd.org/ZFSOnRoot

Eine kleine Einführung in ZFS auf FreeBSD findet man hier: http://www.chruetertee.ch/blog/archive/2007/05/26/zfs-auf-freebsd.html

Related Entries:
ZFS-Statistiken anzeigen
ZFS-Installation mit Hilfe von mfsBSD
FreeBSD nur auf ZFS installieren
Alle Änderungen eines ZFS-Pools anzeigen
Automatisch ZFS Snapshots erstellen
Comments (5)  Permalink

Ports testen und Pakete erstellen mit einer Tinderbox

Mit einer Tinderbox können FreeBSD Ports getestet und Pakete aus den Ports erstellt werden. Möchte man Ports für FreeBSD-7.0 oder FreeBSD 8-CURRENT testen, muss man auch eine solche Version installiert haben, da sich Aufgrund von ABI Änderungen, diese Versionen nicht mit FreeBSD-5.x oder FreeBSD-6.x testen lassen (vielen Dank an miwi für diesen Hinweis!). Die Tinderbox findet man in den FreeBSD Ports unter ports-mgmt/tinderbox:

# cd /usr/ports/ports-mgmt/tinderbox/ && make install clean

Im Konfigurationsmenü kann danach ausgewählt werden, was für eine Datenbank und was für ein Webserver verwendet wird und ob cvsup oder csup zum Aktualisieren der Quelldateien verwendet werden soll. Im folgenden Beispiel wird mySQL als Datenbank und ein Apache Webserver verwendet.

 [ ] PGSQL     With pgsql
 [X] MYSQL     With mysql
 [X] CSUP      Use csup for updates
 [ ] CVSUP     Use cvsup for updates
 [ ] WEB       Install web interface
 [X] WEB_EXP   Install the new web interface
 [X] APACHE    Use Apache for web interface
 [ ] LIGHTTPD  Use LightHTTPD for web interface

Ist noch kein Datenbank-Server installiert, muss dieser auch noch installiert werden:

# cd /usr/ports/databases/mysql50-server && make install clean

Nun kann die Webserverkonfiguration den eigenen Wünschen angepasst werden:

# vi /usr/local/etc/apache/httpd.conf

Sollen die Datenbank und der Webserver bei einem Systemstart automatisch gestartet werden, müssen die benötigten Einträge in /etc/rc.conf gemacht werden:

mysql_enable="YES"
apache_enable="YES"

Nun können mySQL und der Apache gestartet werden:

# /usr/local/etc/rc.d/apache.sh start
# /usr/local/etc/rc.d/mysql-server start

Danach kann mit der Konfiguration der Tinderbox begonnen werden:

# /usr/local/tinderbox/scripts/setup.sh

Dabei müssen verschieden Angaben gemacht werden:

Enter database driver (mysql pgsql): mysql
 
Does this host have access to connect to the Tinderbox database as a database administrator? (y/n)y
 
Enter database admin user [root]:<Benutzer>
Enter database host [localhost]:<DB Server>
Enter database name [tinderbox]:<Datenbankname>
Are these settings corrrect:
    Database Administrative User : root
    Database Host                : localhost
    Database Name                : tinderbox
(y/n)y
 
INFO: Checking to see if database tinderbox already exists on localhost ...
INFO: The next prompt will be for the root's password on the database server
localhost.
Enter password:<Passwort>
INFO: Database tinderbox does not exist.  Creating database tinderbox on localhost ...
INFO: The next prompt will be for root's password on the database server localhost.
Enter password:<Passwort>
DONE. INFO: Loading Tinderbox schema into tinderbox ... The next prompt will be for root's password to the tinderbox database. Enter password:<Passwort>
DONE. Enter the desired username for the Tinderbox database : <Benutzername> Enter the desired password for tinderbox : <Passwort> Are these the settings you want: Database username : tinderbox Database user password : **** (y/n)y INFO: Adding permissions to tinderbox for tinderbox ... INFO: The next prompt will be for root's password on the database server localhost. Enter password: <Passwort> DONE. INFO: Database configuration complete.

Nun müssen noch einige Dateien kopiert und angepasst werden:

# cp /usr/local/tinderbox/scripts/tinderbox.ph.dist /usr/local/tinderbox/scripts/tinderbox.ph

In der Datei /usr/local/tinderbox/scripts/tinderbox.ph müssen noch einige Variablen ausgefüllt werden. Verwendet man die neue Weboberfläche, müssen die Variablen für www auskommentiert und jene für www-exp einkommentiert werden:

$BUILD_ROOT      = '/usr/local/tinderbox';
$SUBJECT         = '<Betreff einer Tinderbox Mail>';
$SENDER          = '<Senderadresse>';
$SMTP_HOST       = '<Mailserver>';
$SERVER_HOST     = '<Tinderbox Server>'; 
 
$TINDERBOX_URI           = '/tb';
 
# for www:
#$SHOWBUILD_URI           = $TINDERBOX_URI . '/showbuild.php?name=';
#$SHOWPORT_URI            = $TINDERBOX_URI . '/showport.php?id=';
 
# for www-exp:
$SHOWBUILD_URI           = $TINDERBOX_URI . '/index.php?action=list_buildports&build=';
$SHOWPORT_URI            = $TINDERBOX_URI . '/index.php?action=describe_port&id=';

Danach müssen noch zwei PHP Scripts kopiert und angepasst werden:

# cp /usr/local/tinderbox/scripts/www-exp/inc_ds.php.dist /usr/local/tinderbox/scripts/www-exp/inc_ds.php
# cp /usr/local/tinderbox/scripts/www-exp/inc_tinderbox.php.dist /usr/local/tinderbox/scripts/www-exp/inc_tinderbox.php

Einträge in der /usr/local/tinderbox/scripts/www-exp/inc_ds.php:

$DB_HOST = '<DB Server>';
$DB_USER = '<DB User>';
$DB_PASS = '<DB Passwort>';

Einträge in der /usr/local/tinderbox/scripts/www-exp/inc_tinderbox.php:

 
$rootdir = '/usr/local/tinderbox';
$wwwrooturi  = '/tb';
$tinderbox_name  = '<Tinderbox Name>';
$tinderbox_title = '<Tinderbox Titel>';

Jetzt kann die Tinderbox initialisiert werden:

# cd /usr/local/tinderbox/scripts && ./tc init

Möchte man die Tinderbox über das Web-GUI steuern, muss noch der tinderd Dienst aktiviert werden:

# cp /usr/local/tinderbox/scripts/etc/rc.d/tinderd.sh /usr/local/etc/rc.d/
# chmod +x /usr/local/etc/rc.d/tinderd.sh
# echo 'tinderd_enable="YES"' >> /etc/rc.conf
# echo 'tinderd_directory="/usr/local/tinderbox/scripts"' >> /etc/rc.conf
# echo 'tinderd_flags="-nullfs"' >> /etc/rc.conf

Nun muss noch ein Benutzer für das Web-GUI erstellt werden:

# cd /usr/local/tinderbox/scripts && ./tc addHost
# ./tc addUser -u <Benutzername> -e <E-Mailadresse> -p <Passwort> -w
# ./tc setWwwAdmin -u <Benutzername>

Nun müssen noch die Einträge in der /usr/local/etc/apache/httpd.conf gemacht werden:

 Alias /tb/logs/ "/usr/local/tinderbox/logs/"
 Alias /tb/packages/ "/usr/local/tinderbox/packages/"
 Alias /tb/errors/ "/usr/local/tinderbox/errors/"
 Alias /tb/ "/usr/local/tinderbox/scripts/www-exp/"
 <Directory "/usr/local/tinderbox/">
         Order allow,deny
         Allow from all
 </Directory>

Danach kann der Apache neu gestartet werden:

# /usr/local/etc/rc.d/apache.sh restart

Als erstes wird ein Portbaum mit der Bezeichnung FreeBSD erstellt:

# cd /usr/local/tinderbox/scripts
# ./create PortsTree -p FreeBSD -d "FreeBSD ports tree" -w http://www.freebsd.org/cgi/cvsweb.cgi/ports/

Mit einer Tinderbox können Packet für verschieden FreeBSD Versionen erstellt werden. Folgender Befehl erstellt eine Tinderbox-Jail für FreeBSD 6.2:

# ./create Jail -j 6.2 -d "FreeBSD 6.2" -t RELENG_6_2

Nun wird der Tinderbox-Jail dem Portbaum zugewiesen:

# ./create Build -b 6.2-FreeBSD -j 6.2 -p FreeBSD -d "6.2-RELEASE with FreeBSD ports tree"

Es können nun auch weiter Tinderbox-Jails mit anderen FreeBSD Versionen und unterschiedliche Portbäume erstellt werden.

Danach können schon Ports, in diesem Beispiel www/fluxcms, getestet und Pakete dafür erstellt werden:

# ./tc addPort -b 6.2-FreeBSD -d www/fluxcms -r
# ./tinderbuild -nullfs -b 6.2-FreeBSD www/fluxcms

Die Logdateien und die Pakete können ganz einfach über das Web-GUI gefunden werden. Dieses ist über http://tinderboxserver/tb/ erreichbar.

Auch lassen sich bestehende Portbaume aktualisieren. Folgender Befehl aktualisiert den Portbaum welcher FreeBSD benannt wurde:

# ./tc updatePortsTree -p FreeBSD

Mehr Informationen zur Tinderbox findet man auf der Homepage http://tinderbox.marcuscom.com/.

Related Entries:
Tinderbox aufräumen
Wartezeit von tinderd ändern
Quellcode in der Tinderbox speichern
Tinderbox-Jail ohne Kompilieren erstellen
RSS-Feed der zuletzt gebauten Ports einer Tinderbox
Comments (4)  Permalink

pkg_updating: ports/UPDATING Meldungen anzeigen

Gestern Abend wurde pkg_updating in 8.0-CURRENT commited. Damit können sich nun Benutzer eines aktuellen CURRENT's Einträge aus ports/UPDATING anzeigen lassen, die installierte Ports betreffen oder nach denen sie suchen. Folgender Befehl durchsucht ports/UPDATING nach allen Einträgen, die einen installierten Port betreffen:

# pkg_updating

Möchte man nur Einträge seit dem 01.01.2007 anzeigen lassen, die einen installierten Port betreffen, benutzt man die -d Option:

# pkg_updating -d 20070101

Auch kann man nach Einträgen eines bestimmten Ports suchen:

# pkg_updating apache

Oder gleich eine Liste von gewünschten Ports übergeben:

# pkg_updating apache mysql perl

Auch hier kann mit einem Datum die Suche eingegrenzt werden. Im folgenden Beispiel werden nur Einträge der übergebenen Ports seit dem 01.06.2007 angezeigt:

# pkg_updating -d 20070601 apache mysql perl

Mehr Informationen zu pkg_updating findet man in der Manpage pkg_updating(1).

Comments (5)  Permalink

XDM Einstellungen ändern

Benutzt man für das Anmelden auf der graphischen Benutzeroberfläche XDM und möchte dessen Aussehen dauerhaft ändern, kann dies auf FreeBSD in der Datei /usr/local/lib/X11/xdm/Xresources gespeichert werden. So kann zum Beispiel mit der xlogin*greeting Einstellung der Begrüssungtext und mit xlogin*logoFileName das Logo von XDM geändert werden. Mehr Informationen zu XDM findet man in der Manpage xdm(1).
Comments (4)  Permalink

Zeit in OpenBSD auf einem Multiboot-System

Benutzt man OpenBSD auf einem Multiboot-System und die Hardware Uhr ist nicht auf UTC eingestellt, kann es sein, dass die Zeit falsch dargestellt wird, obwohl die Zeitzone richtig eingestellt ist. Um dies zu ändern, kann dem OpenBSD Kernel der Zeitunterschied der Hardware Uhr zu UTC mitgeteilt werden:

# date
Tue Oct 30 21:49:21 CET 2007
# config -ef /bsd
OpenBSD 4.2 (GENERIC) #375: Tue Aug 28 10:38:44 MDT 2007
deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
Enter 'help' for information
ukc> timezone -60
timezone = -60, dst = 0
ukc> quit
Saving modified kernel.

Nach einem Neustart des Systems stimmt nun auch die Uhrzeit:

# date
Tue Oct 30 20:51:36 CET 2007

Mehr Informationen zu den Möglichkeiten von config findet man in der Manpage config(8).

 Permalink

Mehrere Apache-Instanzen starten

Hat man einen Apache 2 über die Ports installiert, können einfach mehrere Apache-Instanzen mit unterschiedlicher Konfiguration gestartet werden. Zuerst muss überprüft werden, ob schon ein Apache installiert ist:

# pkg_info -E apache\*
apache-2.0.61_2

Ist noch kein Apache installiert, kann dieser über die Ports installiert werden:

# cd /usr/ports/www/apache20 && make install clean

Nun können die gewünschten Instanzen in der /etc/rc.conf konfiguriert werden. In folgendem Beispiel werden zwei Instanzen konfiguriert. Eine "frontend"-Instanz welche auch SSL Verbindungen terminiert und eine "backend"-Instanz:

apache2_profiles="frontend backend"
apache2_frontend_enable="YES"
apache2ssl_frontend_enable="YES"
apache2_frontend_configfile="/usr/local/etc/apache2/httpd-frontend.conf"
apache2_backend_enable="YES"
apache2_backend_configfile="/usr/local/etc/apache2/httpd-backend.conf"

Nun müssen die jeweiligen Apache Konfigurationsdateien für die verschieden Instanzen erstellt werden. Dabei können auch unterschiedliche Apache Module geladen werden. Die Instanzen müssen an unterschiedliche IP-Adressen oder Ports gebunden werden:

# grep Listen httpd-frontend.conf ssl-frontend.conf httpd-backend.conf
httpd-frontend.conf:Listen 217.150.245.57:80
ssl-frontend.conf:Listen 217.150.245.57:443
httpd-backend.conf:Listen 192.168.1.38:80

Sind die Instanzen konfiguriert, können diese gestartet werden:

# /usr/local/etc/rc.d/apache2 start
===> apache2 profile: frontend
Performing sanity check on apache2 configuration:
Syntax OK
Starting apache2.
===> apache2 profile: backend
Performing sanity check on apache2 configuration:
Syntax OK
Starting apache2.

Nun kann überprüft werden, ob die Instanzen auch gestartet worden sind:

# netstat -tan | grep LISTEN
tcp4 0 0 192.168.1.38.80 *.* LISTEN
tcp4 0 0 217.150.245.57.443 *.* LISTEN
tcp4 0 0 217.150.245.57.80 *.* LISTEN
# ps ax | grep httpd
23597 ?? Ss 0:00,26 /usr/local/sbin/httpd -DSSL -f /usr/local/etc/apache2/httpd-frontend.conf -c PidFile /var/run/httpd.frontend.pid
23606 ?? Ss 0:00,05 /usr/local/sbin/httpd -f /usr/local/etc/apache2/httpd-backend.conf -c PidFile /var/run/httpd.backend.pid
23607 ?? I 0:00,00 /usr/local/sbin/httpd -DSSL -f /usr/local/etc/apache2/httpd-frontend.conf -c PidFile /var/run/httpd.frontend.pid
23608 ?? I 0:00,00 /usr/local/sbin/httpd -DSSL -f /usr/local/etc/apache2/httpd-frontend.conf -c PidFile /var/run/httpd.frontend.pid
23609 ?? I 0:00,00 /usr/local/sbin/httpd -DSSL -f /usr/local/etc/apache2/httpd-frontend.conf -c PidFile /var/run/httpd.frontend.pid
23610 ?? I 0:00,00 /usr/local/sbin/httpd -DSSL -f /usr/local/etc/apache2/httpd-frontend.conf -c PidFile /var/run/httpd.frontend.pid
23611 ?? I 0:00,00 /usr/local/sbin/httpd -DSSL -f /usr/local/etc/apache2/httpd-frontend.conf -c PidFile /var/run/httpd.frontend.pid
23612 ?? I 0:00,00 /usr/local/sbin/httpd -f /usr/local/etc/apache2/httpd-backend.conf -c PidFile /var/run/httpd.backend.pid
23613 ?? I 0:00,00 /usr/local/sbin/httpd -f /usr/local/etc/apache2/httpd-backend.conf -c PidFile /var/run/httpd.backend.pid
23614 ?? I 0:00,00 /usr/local/sbin/httpd -f /usr/local/etc/apache2/httpd-backend.conf -c PidFile /var/run/httpd.backend.pid
23615 ?? I 0:00,00 /usr/local/sbin/httpd -f /usr/local/etc/apache2/httpd-backend.conf -c PidFile /var/run/httpd.backend.pid
23616 ?? I 0:00,00 /usr/local/sbin/httpd -f /usr/local/etc/apache2/httpd-backend.conf -c PidFile /var/run/httpd.backend.pid

In der /etc/rc.conf können noch weitere Variablen für den Apache konfiguriert werden, diese findet man in der Datei /usr/local/etc/rc.d/apache2.

Comments (3)  Permalink

Herausfinden wieso ein Programm mit rc.d Skript nicht startet

Möchte man unter FreeBSD ein Programm mit dem rc.d Skript starten, dies schlägt aber fehl, so kann man in der /etc/rc.conf mit folgendem Eintrag zusätzliche Ausgaben aktivieren:

rc_debug="YES"

Im folgenden Beispiel ist die rc_debug Variable nicht gesetzt und der Apache wird auch nicht gestartet:

# /usr/local/etc/rc.d/apache2 start
#

Setzt man nun die rc_debug Variable, werden zusätzliche Informationen angezeigt:

# echo 'rc_debug="YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/apache2 start
/usr/local/etc/rc.d/apache2: DEBUG: checkyesno: apache2ssl_enable is set to NO.
/usr/local/etc/rc.d/apache2: DEBUG: checkyesno: apache2_enable is set to NO.

Gemäss der Ausgabe ist die enable Variable nicht gesetzt. Überprüft man das nun, sieht man, dass sich ein Schreibfehler eingeschlichen hat:

# grep apache /etc/rc.conf
apache_enable="YES"

Ist der Fehler korrigiert, startet nun auch der Apache wie gewünscht:

# /usr/local/etc/rc.d/apache2 start
/usr/local/etc/rc.d/apache2: DEBUG: checkyesno: apache2ssl_enable is set to NO.
/usr/local/etc/rc.d/apache2: DEBUG: checkyesno: apache2_enable is set to YES.
/usr/local/etc/rc.d/apache2: DEBUG: pid file (/var/run/httpd.pid): not readable.
/usr/local/etc/rc.d/apache2: DEBUG: run_rc_command: evaluating apache2_precmd().
Performing sanity check on apache2 configuration:
Syntax OK
/usr/local/etc/rc.d/apache2: DEBUG: checkyesno: apache2limits_enable is set to NO.
Starting apache2.
/usr/local/etc/rc.d/apache2: DEBUG: run_rc_command: _doit: /usr/local/sbin/httpd
Mehr Informationen zu den rc.conf Variablen findet man in der Manpage rc.conf(5).
 Permalink

Mehrere SSH Verbindungen mit einer Authentifizierung

Möchte man mehrere SSH Verbindung zu einem Rechner aufbauen, aber nur einmal das Benutzerpasswort oder das Zertifikatspasswort eingeben, kann man ControlMaster von OpenSSH verwenden. Einfach folgende Zeilen in die ~/.ssh/config Datei einfügen:

Host *
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p

Nun wird beim ersten Verbindungsaufbau zum Rechner das Passwort abgefragt und ein Socket unter ~/.ssh/ erstellt. Baut man nun weitere Verbindungen zum selben Rechner auf, wird man automatisch ohne Passwortabfrage eingeloggt. Sobald die erste Verbindung beendet wird, wird auch der Socket entfernt und man muss sich wieder ganz normal mit Passwort auf dem Rechner anmelden.

Mehr Informationen zu ControlMaster von OpenSSH findet man in der Manpage ssh_config(5).

Comments (1)  Permalink

Datei mit OpenSSL ver- und entschlüsseln

Möchte man eine Datei verschlüsseln, jedoch nicht mit privaten und öffentlichen Schlüsseln sondern mit einem Passwort arbeiten, so kann man OpenSSL dazu nehmen. Mit folgendem Befehl wird die Datei "datei" mit dem Blowfish-Algorithmus verschlüsselt und als datei.enc gespeichert:

# openssl enc -blowfish -salt -in datei -out datei.enc
enter bf-cbc encryption password: <Passwort>
Verifying - enter bf-cbc encryption password: <Passwort>

Nun kann die ursprüngliche Datei gelöscht werden:

# rm -P datei

Soll nun die Datei wieder entschlüsselt und als Datei "datei" gespeichert werden, kann einfach folgender Befehl verwendet werden:

# openssl enc -d -blowfish -in datei.enc > datei
enter bf-cbc decryption password: <Passwort>

OpenSSL befindet sich natürlich auf FreeBSD und OpenBSD im Basissystem. Mehr Informationen zu OpenSSL findet man in der Manpage openssl(1) und in den darin unter SEE ALSO verwiesenen Manpages.

 Permalink
Prev Next321-330/521