Wenn ich vom Mac aus eine SSH-Verbindung zu einem Raspberry öffnen will, öffne ich das Terminal und geb: "ssh pi@192.168.x.y" ein, dann werde ich noch zur Eingabe des Passworts aufgefordert und "ich bin drin".
Frage nun: Ist es auch möglich, den gesamten Anmeldevorgang mit EINEM einzeiligen Cli-Kommando auszuführen, also ohne nachträgliche Interaktion (Passworteingabe)?
Frage nun: Ist es auch möglich, den gesamten Anmeldevorgang mit EINEM
einzeiligen Cli-Kommando auszuführen, also ohne nachträgliche
Interaktion (Passworteingabe)?
Aber auch da wird (einmalig je Sitzung) ein Passwort zur Freigabe des PublicKey verlangt. Es sei denn, das Passwort ist leer, aber das ist dann wieder unsicher.
Aber auch da wird (einmalig je Sitzung) ein Passwort zur Freigabe des
PublicKey verlangt. Es sei denn, das Passwort ist leer, aber das ist
dann wieder unsicher.
ssh-agent ist dein Freund, dann musst du nur einmal dein Passwort eingegeben pro Rechner-Start. Das ist natürlich unsicherer wie es jedes mal einzugeben.
"sh-agent is a program to hold private keys used for public key authentication. Through use of environment variables the agent can be located and automatically used for authentication when logging in to other machines using ssh(1)."
Was willst du:
Sicherheit
Bequemlichkeit
Such dir eines der beiden aus. "There is no free lunch"...
Oder wie es ein Kollege einmal formuliert hat:
"Security ist nicht dazu da einem das Leben einfacher zu machen"
Das Passwort für den Private Key kann man bei MacOS mit ssh-add und den Optionen --apple-use-keychain und --apple-load-keychain in der Keychain speichern (alte MacOS Version -K und -A). Dann muss man das Passwort nicht jedesmal eingeben.
Aber auch da wird (einmalig je Sitzung) ein Passwort zur Freigabe des
PublicKey verlangt. Es sei denn, das Passwort ist leer, aber das ist
dann wieder unsicher.
So wie der ursprüngliche Wunsch es auch ist.
Nur: Oftmals wird ganz einfach keine Sicherheit gewollt und auch nicht gebraucht.
So wie der ursprüngliche Wunsch es auch ist.
Nur: Oftmals wird ganz einfach keine Sicherheit gewollt und auch nicht
gebraucht.
Genau: die Sicherheit muss dem Schutzziel entsprechen. Wenn jemand meinen Wetterdatenlogger hackt, dann passiert da nichts außer dass ich den neu installieren muss.
@Frank E.
Du kannst auch einen Fido 2 Key verwenden wenn das für dich besser passt. Du solltest nur sicherstellen, dass bei einem Verlust oder Defekt du trotzdem wieder an das System rankommst ggf. über eine lokale console.
Es handelt sich um zwei Dutzend Raspis, die in einem Museum interaktive Exponate steuern. Die befinden sich alle in einem eigenen Subnet, das ich nur per VPN erreichen kann. Das Sicherheitsbedürfnis hält sich also in überschaubaren Grenzen.
Von dem Vorschlag mit public key habe ich schon gehört. Erfordert das zusätzliche Installationen auf den Raspis? Muss ich mich belesen ...
Also die bisherige Kommandozeile einfach irgendwie um einen Parameter mit Passwort erweitern geht nicht? Das wäre für mich am Einfachsten, auch wegen der Anzahl der Raspis.
Erfordert das
zusätzliche Installationen auf den Raspis?
Nein, du musst auf dem Server nur zwei Dinge machen:
für jeden User für den du dich einloggen willst das ~/.ssh/authorized_keys file erzeugen (Achtung: permissions 600 verwenden, d.h. besten das Kommando umask 077 eingeben bevor du anfängst !)
den interactive Password Login deaktivieren nachdem du getestet hast, dass der public key login funktioniert.
Bei neueren Debian Distributionen muss du nur eine neue Datei anlegen wie mit dem Kommando unten. Bei älteren Installationen (wenn /etc/ssh/sshd_config.d nicht existiert) muss man die Datei /etc/ssh/sshd_config ändern (ggf. mit sed).
Dieses Kommando muss als root ausgeführt werden, d.h. wenn du noch nicht root bist dann sudo -i ausführen bevor du das eigentliche Kommando ausführts
Also die bisherige Kommandozeile einfach irgendwie um einen Parameter
mit Passwort erweitern geht nicht? Das wäre für mich am Einfachsten,
auch wegen der Anzahl der Raspis.
Ich wüsste nicht wie.
Du musst dich ja nur ein einziges mal auf den Raspis einloggen und die Kommandos von oben ausführen.
Auf dem Client für jeden pi einen Eintrag in ~/.ssh/config erzeugen:
1
Hostpi1
2
HostName192.168.143.1
3
Userroot
4
IdentityFile~/.ssh/id_rsa
Die ip und den Filename muss du natürlich anpassen.
Danach kannst du z.B. folgende Kommandos ausführen:
Es handelt sich um zwei Dutzend Raspis, die in einem Museum interaktive
Exponate steuern. Die befinden sich alle in einem eigenen Subnet, das
ich nur per VPN erreichen kann. Das Sicherheitsbedürfnis hält sich also
in überschaubaren Grenzen.
Wenn das so ist, könntest Du ja einfach telnet statt ssh verwenden ...
Wenn das Sicherheitsbedürfniss nicht allzu hoch ist, dann bei ssh-keygen das Passwort leer lassen. Must halt auf den Mac aufpassen, das keiner Zugriff drauf hat. Auf die Sicherheit im Netzwerk hat das keine Auswirkung.
Es handelt sich um zwei Dutzend Raspis, die in einem Museum interaktive
Exponate steuern. Die befinden sich alle in einem eigenen Subnet, das
ich nur per VPN erreichen kann. Das Sicherheitsbedürfnis hält sich also
in überschaubaren Grenzen.
Wenn das so ist, könntest Du ja einfach telnet statt ssh verwenden ...
Aber auch da wird (einmalig je Sitzung) ein Passwort zur Freigabe des
PublicKey verlangt. Es sei denn, das Passwort ist leer, aber das ist
dann wieder unsicher.
Du kannst auch einen Key ohne Passphrase erstellen.
Dann funktioniert es genau so wie es der TE sich wünscht.
Keine Verschlüsselung, d.h. der ganze Kryptographie-Zertifikatskrempel
entfällt.
Aber Passwort muss er trotzdem eintippen. Das entfällt bei SSH mit Key, wenn dieser nicht Passwortgeschützt ist.
Für etwas mehr Sicherheit lässt sich der SSH-Key am Mac, wie oben Michael geschrieben hatte, auch mit der MacOS-Keychain verbinden. Dann ist der SSH-Login mit einem Fingerabdrucks-Scan erledigt.
Das erzeugt ein RSA-Schlüsselpaar mit einer Schlüssellänge von 3072 bit, das ist z.Zt. noch ok, aber nicht zukunftsträchtig. Besser wäre ein Schlüssel mit einer elliptischen Kurve, da ist z.Zt state-of-the-art ed25519
Es handelt sich um zwei Dutzend Raspis, die in einem Museum interaktive
Exponate steuern. Die befinden sich alle in einem eigenen Subnet, das
ich nur per VPN erreichen kann. Das Sicherheitsbedürfnis hält sich also
in überschaubaren Grenzen.