ssh-copy-id keine identitäten gefunden fehler


75

Ich habe nur wenige Client-Systeme, auf denen ich den SSH-Schlüssel drücken und mich ohne Authentifizierungsaufforderung von meinem Server aus anmelden muss.

Zuerst habe ich auf dem Server den folgenden SSH-Schlüssel erstellt, der erfolgreich war

]# ssh-keygen -t rsa -N "" -f my.key

Zweitens wurde versucht, den Pub-Schlüssel zu kopieren, dies schlägt jedoch ohne Identitätsfehler fehl. Mache ich hier einen falschen Schritt?

]# ssh-copy-id my.key.pub 10.10.1.1
/usr/bin/ssh-copy-id: ERROR: No identities found

Hast du bestätigt, dass my.keyes da ist ls -l my.key? Gibt es einen Schritt, den Sie uns nicht zeigen, der einen getan hat cd? Wahrscheinlich nicht, sondern nur als "2. Augenpaar" fragen ;-). Viel Glück.
Shellter

Antworten:


64

Sie müssen die -iFlagge verwenden:

ssh-copy-id -i my.key.pub 10.10.1.1

Von der Manpage :

Wenn die Option -i angegeben ist, wird die Identitätsdatei (standardmäßig ~ / .ssh / id_rsa.pub) verwendet, unabhängig davon, ob in Ihrem SSH-Agenten Schlüssel vorhanden sind. Andernfalls verwendet ssh-add -L eine Ausgabe, die der Identitätsdatei vorgezogen wird


3
Ich habe es mit der Option -i versucht und die Taste erfolgreich auf das Ziel gedrückt. Auch die Datei "authorized_keys" wurde überprüft, und der Schlüssel scheint vorhanden zu sein. Nachdem ich ssh root@10.10.1.1 ausprobiert habe, aber dennoch nach einem Kennwort gefragt habe, ist hier noch etwas erforderlich. ? ssh-copy-id -i my.key.pub 10.10.1.1 Versuchen Sie nun, sich mit "ssh '10 .10.1.1 '" am Computer anzumelden, und checken Sie ein: .ssh / autorisierte_keys, um sicherzustellen, dass keine zusätzlichen Schlüssel hinzugefügt wurden das hast du nicht erwartet. ~] # ssh root@10.10.1.1 root@10.10.1.1 Passwort:
user3331975

3
ssh sucht standardmäßig nach ~/.sshIhren Schlüsseln usw. Da sich Ihre my.keyDateien in einem anderen Verzeichnis zu befinden scheinen, versuchen Sie es ssh -i /location/of/my.key 10.10.1.1(oder ziehen Sie in Betracht, Ihre my.key-Dateien zu verschieben ~/.ssh)
Josh Jolly

40

Das Generieren von SSH-Schlüsseln auf dem Client hat es für mich gelöst

$ ssh-keygen -t rsa

1
Ich würde sagen, dies ist diejenige, die für den üblichen Fall funktioniert (Erstellen eines SSH-Schlüssels am Standardspeicherort)
Stefan Reich

1
ssh-keygenIch habe gerade für mich gearbeitet. Keine Angabe erforderlich -t rsa.
Sopalajo de Arrierez

31

Führen Sie den folgenden Befehl aus

# ssh-add

Wenn der folgende Fehler auftritt: Es konnte keine Verbindung zu Ihrem Authentifizierungsagenten hergestellt werden

Führen Sie den folgenden Befehl aus, um diesen Fehler zu beheben:

# eval `ssh-agent`

5
Nach der Ausführung von eval ssh-agentführen Sie ssh-add und dann ssh-copy-id aus und alles sollte korrekt funktionieren.
Saradhi

2
Vielen Dank! Ich habe versucht herauszufinden, was nicht funktioniert, aber das hat es gelöst
maharvey67

1
Der ursprüngliche Fehler /usr/bin/ssh-copy-id: ERROR: No identities foundbleibt auch nach dem Ausführen der obigen Befehle bestehen
ulkas

Hat mir auch nicht geholfen
Stefan Reich

9

Die ssh-copy-id kann die von ssh-keygen in Ihrem System generierte Datei id_rsa.pub nicht finden. Verwenden Sie den folgenden Befehl, um den Vorgang abzuschließen:

  1. Finden Sie den Pfad der .pub-Datei: locate *.pub
  2. Kopieren Sie den Pfad (z. B. /home/user_name/.ssh/id_rsa.pub) und führen Sie den folgenden Befehl aus: ssh-copy-id -i /home/user_name/.ssh/id_rsa.pub hostname

7

Sie müssen den Schlüssel mit der Option -i angeben.

ssh-copy-id -i your_public_key user@host

Vielen Dank.


7

Der einfachste Weg ist:

ssh-keygen
[enter]
[enter]
[enter]

cd ~/.ssh
ssh-copy-id -i id_rsa.pub USERNAME@SERVERTARGET

Att:

Es ist sehr sehr einfach.

Im Handbuch von "ss-keygen" erklärt:

"BESCHREIBUNG ssh-keygen generiert, verwaltet und konvertiert Authentifizierungsschlüssel für ssh (1). SSh-keygen kann RSA-Schlüssel zur Verwendung durch das SSH-Protokoll Version 1 und DSA-, ECDSA- oder RSA-Schlüssel zur Verwendung durch das SSH-Protokoll Version 2 erstellen. Der Typ von Der zu generierende Schlüssel wird mit der Option -t angegeben. Wenn er ohne Argumente aufgerufen wird, generiert ssh-keygen einen RSA-Schlüssel zur Verwendung in SSH-Protokoll 2-Verbindungen. "


Vielen Dank. Das hat funktioniert. Ich musste keinen Schlüssel generieren, da ich bereits einen hatte. Es wurde in das Verzeichnis .ssh geändert und der Befehl verwendet, der es ausgeführt hat.
Sean Rasmussen

6

Alter Beitrag, aber ich hatte heute dieses Problem, googelte und fand mich hier wieder. Ich hatte es selbst herausgefunden, dachte aber, ich würde mein Problem und meine Lösung in meinem Fall teilen, um allen anderen zu helfen, die möglicherweise das gleiche Problem haben.

Problem:

[root@centos [username]]# ssh-keygen -t rsa

Enter file in which to save the key (/root/.ssh/id_rsa):Ich musste gerade eintreten

/usr/bin/ssh-copy-id: ERROR: No identities found

Lösung:

Enter file in which to save the key (/root/.ssh/id_rsa): **/home/[username]/id_rsa**

Stellen Sie sicher, dass Sie den Schlüssel in das Benutzerverzeichnis kopieren, mit dem Sie sich anmelden möchten, wenn Sie dies als Root tun. NICHT das Root-Benutzerverzeichnis.

Ich habe mich bei der Ausführung dieses Vorgangs auf dem Computer angemeldet, daher zeigt ssh-copy-id vermutlich nur auf das Verzeichnis, in dem Sie standardmäßig angemeldet sind.

Hoffe das hilft jedem.


2

stieß auf dieses, auf ein bestehendes Konto mit privatem Schlüssel, das ich manuell von einer anderen Stelle kopiert habe. Der Fehler liegt also darin, dass der öffentliche Schlüssel fehlt

also einfach eins aus privat generieren

 ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

2

Tatsächlich ist das Problem ssh-keygen auf einem Ubuntu-Computer nicht ordnungsgemäß ausgeführt worden. Ich habe erneut versucht zu laufen und bin in /home/user1/.ssh navigiert und konnte die Schlüssel id_rsa und id_rsa.pub sehen. dann versuchte Befehl ssh-copy-id und es funktionierte gut.


1

FWIW, die Option -i war für mich ein roter Hering. ssh-copy-id verwendet standardmäßig ~ / .ssh / id_rsa.pub.

Was mich davon abhielt, für mich zu funktionieren, waren die Berechtigungen für das Verzeichnis ~, das Verzeichnis ~ / .ssh und die Datei ~ / .ssh / autorisierte_keys auf dem Remotecomputer.

Alle drei müssen eingestellt werden chmod 755 ~ ~/.ssh ~/.ssh/authorized_keys, dann ssh-copy-id your-remote-server.comfunktioniert es.


0

Verwenden Sie einfach, ssh-keyscan hostnameum herauszufinden, ob auf beiden Websites Schlüssel vorhanden sind:

ssh-keyscan rc1.localdomain
[or@rc2 ~]$ ssh-keyscan rc1
# rc1 SSH-2.0-OpenSSH_5.3
rc1 ssh-rsa AAAAB3NzaC1yc2EAAAABI.......==

ssh-keyscan rc2.localdomain
[or@rc2 ~]$ ssh-keyscan rc2
# rac2 SSH-2.0-OpenSSH_5.3
rac2 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAys7kG6pNiC.......==

-1

Ich hatte dieses Problem heute beim Einrichten von ssh zwischen Namensknoten und Datenknoten im vollständig verteilten Modus zwischen zwei VMs in CentOS.

Das Problem trat auf, weil ich den folgenden Befehl vom Datenknoten anstelle des Namensknotens ssh-copy-id -i /home/hduser/.ssh/id_ras.pub hduser @ HadoopBox2 ausführte

Da die öffentliche Schlüsseldatei im Datenknoten nicht vorhanden war, wurde der Fehler ausgegeben.


-3

In meinem Fall war es die fehlende .pubErweiterung eines Schlüssels. Ich habe es aus der Zwischenablage eingefügt und als gespeichert mykey. Der folgende Befehl hat den beschriebenen Fehler zurückgegeben:

ssh-copy-id -i mykey localhost

Funktioniert nach dem Umbenennen mit mv mykey mykey.pubkorrekt.

ssh-copy-id -i mykey.pub localhost
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.