Wie kann verhindert werden, dass ssh-copy-id den Schlüssel installiert, wenn er bereits installiert ist?
Schreibe dein eigenes Skript. Sie ssh-copy-id
müssen lediglich eine Zeile an eine Datei anhängen. Folgendes würde prüfen, ob der Schlüssel vorhanden ist:
#!/bin/bash cat ~/.ssh/id_* | ssh "$@" 'mkdir -pm 0700 ~/.ssh && while read -r ktype key comment; do if ! (grep -Fw "$ktype $key" ~/.ssh/authorized_keys | grep -qsvF "^#"); then echo "$ktype $key $comment" >> ~/.ssh/authorized_keys fi done'
Wie kann die Schlüsselinstallation beim Herstellen einer Verbindung mit SSH automatisch und transparent erfolgen (ohne explizite ssh-copy-id?
Das ist nicht möglich, denn wenn der Server noch nicht über Ihren öffentlichen Schlüssel verfügt, weiß er auch nicht, wo er ihn abrufen kann.