Ich habe einen Server mit SSH auf einem Nicht-Standard-Port. Anstelle von 22 wird es auf 8129 ausgeführt. Zum Anmelden verwende ich:
ssh -p 8129 hostname
Wenn ich jetzt einen Schlüssel für die Anmeldung ohne Kennwort einrichten muss, muss ich den öffentlichen Schlüssel kopieren und manuell zu authorized_keys hinzufügen. Ich habe festgestellt, dass der Befehl ssh-copy-id
zur Vereinfachung dieses Vorgangs verwendet werden kann, aber anscheinend gibt es keine Option, um den Port des SSH-Servers anzugeben.
Gibt es eine Möglichkeit, die ssh-copy-id
Verwendung von Port 8129 zu bestimmen, oder sollte ich diesen Befehl einfach vergessen und manuell kopieren / einfügen wie zuvor?
ssh
Syntax hatssh -p 1234 user@host
,ssh-copy-id "-p 1234 user@host"
und schließlichscp -P 1234 user@host
. Es wäre so schön, die gleiche Syntax zu haben.rsync -e "ssh -p 1234" user@host
. Ich schwöre, es ist umständlicher, als es sich lohnt, einen benutzerdefinierten Port zu verwenden.ssh-copy-id "[email protected] -p 12345" -i ~/.ssh/id_rsa.pub 192.168.0.100
ssh-copy-id -p 8129 user@host
funktioniert.ssh-copy-id
akzeptiert keine Argumente, die an den zugrunde liegendenssh
Befehl weitergegeben werden könnten , aber Sie können einen Alias in konfigurieren~/.ssh/config
.Dann lauf
ssh-copy-id myhost
.quelle
-p
Flagge bei regelmäßigenssh
Versuchen nicht mehr benötigt wird. Es ist daher nicht nur die richtige Antwort auf diese Frage, es ist die richtige Sache, Punkt.Ab openssh-client_6.2 gibt es jetzt ein dediziertes Port-Flag für den Befehl, das diese Syntax zulässt:
Es wurde auch die Unterstützung für das Hinzufügen anderer ssh-Optionen mit dem Flag -o hinzugefügt.
Hier ist Ubuntus Manpage für die entsprechende Version, die in 13.04 eingeführt wurde: http://manpages.ubuntu.com/manpages/saucy/man1/ssh-copy-id.1.html
quelle
Ein kurzer Blick auf die Quelle zeigt, dass
ssh-copy-id
anscheinend keine Funktion vorhanden ist, die dies zulässt. Sie könnten jedoch stattdessen Folgendes tun:quelle
Dies funktioniert (von hier aus ):
quelle
Ich habe es immer
scp
kopiert:Obwohl ich sagen muss, werde ich wahrscheinlich die anderen (einzeiligen / verbindenden) Methoden verwenden, wenn ich mich in Zukunft an sie erinnere. Dies ist jedoch eine andere Option für Sie.
quelle
Auf CentOS7 ist nur:
Bitte achten Sie darauf, dass user @ host nicht in die Anführungszeichen gesetzt wird, da sonst die folgende Fehlermeldung in dieser Distribution angezeigt wird:
quelle
Mit meinem macOS hat das geklappt.
quelle
Ich benutze diesen Befehl:
ssh-copy-id ssh://user@ip_addr:port
Beispiel:
ssh-copy-id ssh://[email protected]:23
quelle