Home.

Technik-Blog

Willkommen auf meinem
Notiz - Blog
Blog

Kmoser's Tech-Blog

Freitag
17
Juli 2015
Klaus Moser
Klaus Moser

Ubuntu 14.04 - Aufnahme eines Audio-Ausgabekanals

Auf YouTube.de habe ein paar richtig gute House-Tracks gefunden die ich gerne auch beim Motorrad fahren hören würde. Da die Bandbreite im Mobilbereich leider (noch) etwas mager ist, bliebt nichts anderes übrig als den Audiostream aufzunehmen um ihn dann über das Handy unterwegs wieder abspielen zu können.

Linux wäre nicht Linux wenn es dafür keine Lösung gäbe :-)

Es ist natürlich darauf zu achten dass man dabei geltendes Recht, inbesondere das Urheberecht, hierbei nicht verletzt.

Man benötigt dafür ein Programm für Audio Recording wie Audacity, den PulseAudio Lautstärkeregler (pavucontrol) und einen Web-Browser. Als erstes startet man Audacity und wählt in der Device Toolbar ALSA, default und pulse aus.

Sollte man nicht wissen wie der Ausgabekanal heißt auf dem die Audio Ausgabe läuft, kann man jetzt die Audioausgabe starten damit wir im nächsten Schritt einen Ausschlag des Volume-Meters sehen können wenn man den richtigen Kanal gewählt hat.

Drückt man jetzt auf den Knopf für Aufnahme, so öffnet sich im PulseAudio Lautstärkeregler im Reiter Aufnahme ein neues Capture Device. Über den Button oben rechts kann man jetzt den Kanal wählen den man aufnehmen möchte.

Damit ist jetzt für die Aufnahme unseres Audio Ausgabe Stroms alles eingestellt und man kann jetzt seine Lieblingtitel aufnehmen.

Montag
23
März 2015
Klaus Moser
Klaus Moser

Ubuntu - SSH Key erzeugen

Für die Authentifikation per SSH kann man ein Schlüsselpaar mit oder ohne Passwort verwenden. Ein solches Schlüsselpaar erzeugt man mit

ssh-keygen -t rsa -b 4096 -C "me@example.com" -f ~/.ssh/id_rsa-new

Der Parameter -f ist optional und spezifiziert nur den Namen der Datei der den privaten Schlüssel enthält. Der öffentliche Schlüssel bekommt den gleichen Namen mit der zusätzlichen Dateiendung .pub.

Führt man das Kommando aus erhält man eine Ausgabe wie die folgende

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/myuser/.ssh/id_rsa-new.
Your public key has been saved in /home/myuser/.ssh/id_rsa-new.pub.
The key fingerprint is:
a6:f4:47:cf:32:67:a5:3e:44:26:cc:39:a4:22:c3:5b myser@myhost
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|          .      |
|         + o     |
|        S o.o    |
|     . . +.o..  E|
|      o + .o+. . |
|       o +o +o.  |
|        ooo+oo   |
+-----------------+

und es werden zwei Dateien erzeugt:

$ ll ~/.ssh
-rw------- 1 myuser myuser 1,7K Mär 23 12:03 id_rsa-new
-rw-r--r-- 1 myuser myuser  402 Mär 23 12:03 id_rsa-new.pub

Der private Schlüssel id_rsa-new ist der Schlüssel mit dem man Zugriff auf einen Server erhalten kann und muss geheim gehalten werden. Wichtig für diese Datei ist, dass die Dateiberechtigungen so gesetzt werden, dass sie nur vom Benutzer gelesen und geschrieben werden darf, da sich sonst ssh beschwert und dessen Verwendung verweigert.

chmod 0600 ~/.ssh/id_rsa-new

Der öffentliche Schlüssel kann auf den Servern hinterlegt werden, auf denen man einen Zugriff per SSH möchte.

Entfernter Server

Um jetzt auf einem anderen Server den SSH Zugang über diesen Schlüssel zu ermöglichen, kopiert man den Inhalt der Datei ~/.ssh/id_rsa-new in die Datei ~/.ssh/authorized_keys auf dem Server.

cat ~/.ssh/id_rsa-new.pub | ssh myserver.local -l myusername "cat >> ~/.ssh/authorized_keys" 

Um vorher einen alten Key zu entfernen kann man folgendes machen

echo "sed -i '\,$(head -n 1 ~/.ssh/id_rsa-old.pub),d' ~/.ssh/authorized_keys" | ssh myserver.local bash

Damit der Server einen Authentifikation per Key zulässt muss in der Datei /etc/ssh/sshd_config folgendes gesetzt sein:

PubkeyAuthentication yes

Jetzt sollte man sich mit

ssh remotehost.de -l myusername

auf dem entfernten Server remotehost.de anmelden können. Die Option -l spezifiziert den Benutzernamen mit dem man sich am Server anmelden möchte und kann weggelassen werden wenn entweder der lokale Benutzername mit dem auf dem Server übereinstimmt oder man eine entsprechende Konfiguration unter ~/.ssh/config angelegt hat.

Script zum Ändern des Public Keys

Mit folgendem Script kann man das Ändern des Public Keys automatisieren.

Dem Script muss als Argument der Zielserver übergeben werden. Der neue Key muss unter ~/.ssh/id_rsa.pub und der alte Key unter ~/.ssh/id_rsa-old.pub liegen.

Also z.B.

replaceKey.sh www.myserver.de

Das Script fügt den neuen Key in die Datei ~/.ssh/authorized_keys auf dem Zielserver ein und entfernt bei Erfolg den alten Key.

#!/bin/bash
if [ -z $1 ]
then
        echo "No server given. Exiting..."
        exit 1
fi

# Add new key
cat ~/.ssh/id_rsa.pub | ssh $1 "cat >> ~/.ssh/authorized_keys"

# Remove old key
if [ $? -eq 0 ]
then
        echo "sed -i '\,$(head -n 1 ~/.ssh/id_rsa-old.pub),d' ~/.ssh/authorized_keys" | ssh $1 bash
else
        echo "Unable to add new key to ~/.ssh/authorized_keys on $1. Aborting..."
fi

# Show file ssh $1 "cat ~/.ssh/authorized_keys"

Das Script gibt am Schluss die Datei ~/.ssh/authorized_keys auf dem Zielserver zur Kotrolle aus.

Montag
02
Februar 2015
Klaus Moser
Klaus Moser

Ubuntu 14.04 - Samba und Symlinks

Aus Platzgründen musste ich heute ein Unterordner auf einem meiner Samba-Shares auf eine andere Festplatte verlinken. Leider musste ich feststellen, dass Samba keine Links zulässt, die auf ein Ziel außerhalb des Shares zeigen.

Da der Mountpoint der Platte jedoch außerhalb liegen muss, da hier noch andere Dinge drauf sind musste ich Samba beibringen den Links doch bitte zu folgen. Und Linux wäre nicht Linux wenn es dafür nicht auch ein Schalterchen gäbe.

Um Samba zu erlauben Symlinks zu folgen, die nicht auf ein Ziel innerhalb des Shares zeigen muss folgendes in die [global] Sektion.

follow symlinks = yes
wide links = yes
Blog

Kmoser's Tech-Blog