OpenSSH

OpenSSH ist eine Sammlung von freien Anwendungen für das Secure Shell-Protokoll. Es wird von der OpenBSD Foundation entwickelt und wird in den meisten Linux-Distributionen eingesetzt.

OpenSSH beinhaltet folgende Anwendungen und Dienste:

  • ssh: Ersatz für rsh, rlogin und telnet
  • scp: zum sicheren Kopieren von Dateien über Systemgrenzen hinweg. Ersatz für rcp.
  • sftp: Ersatz für ftp
  • sshd: SSH-Daemon
  • ssh-keygen: Authentifizierungsschlüssel-Generator, -Management und -Konvertierung
  • ssh-keyscan: Erfassen von SSH Public Keys
  • ssh-agent: Hält den privaten Schlüssel im Arbeitsspeicher
  • ssh-add: Lädt einen privaten Schlüssel in den ssh-agent

Beispiele

Remote Login

ssh root@[board ip-addr]

Beim Erzeugen eines neuen Root-Filesystems kann es vorkommen, dass vergessen wurde, die Gruppe sshd zu erstellen. Das könnte nachgeholt werden. Alternativ kann auch das File /etc/ssh/sshd_config so abgeändert werden, dass UsePrivilegeSeparation ausgeschaltet wird mit

UsePrivilegeSeparation no

Ein weiteres Problem kann sein, dass das Verbinden mehrere Sekunden dauert, siehe http://www.openssh.com/faq.html#3.3. Dann hilft das Einfügen von

UseDNS no

in das File /etc/ssh/sshd_config.

Dateien kopieren

scp example.txt root@[board ip-addr]:/tmp/

Damit z.B. aus eclipse direkt mit Hilfe eines Make-Targets ein File transferiert werden kann, muss ein Passwort abgefragt werden können. Dazu muss noch das folgende Paket auf dem Host installiert sein:

sudo apt-get install ssh-askpass

SSH Login ohne Passwort

Wenn der Schlüssel einmal gespeichert wir, muss dass Passwort bei zukünftigen SSH-Verbindungen nicht mehr eingegeben werden. Ausführliche Anleitung

  1. File erstellen, in dem der Schlüssel gespeichert wird.
    1. cd ~/.ssh
    2. ssh-keygen -t dsa
  2. Den Schlüssel speichern
    1. ssh-copy-id -i ./id_dsa.pub user@server