Nur zur Klarstellung: Der Fehler, den ich bekomme, hängt nicht mit den Berechtigungen für SSH-Dateien zusammen. Ich bekomme keinen Fehler, der mit Berechtigungen zusammenhängt.
Ich habe die folgende ~/.ssh/config Datei
Host git-codecommit.*.amazonaws.com
User APKAIxxxxxxxxxxxxxxx
IdentityFile ~/.ssh/id_rsa
config- und id_rsa-Dateien haben die folgenden Berechtigungen
-rw------- 1 jmsanzg jmsanzg 93 jun 24 16:23 config
-rw------- 1 jmsanzg jmsanzg 1679 abr 26 2015 id_rsa
-rw-r--r-- 1 jmsanzg jmsanzg 396 abr 26 2015 id_rsa.pub
Das .ssh-Verzeichnis hat die folgenden Berechtigungen
drwx------ 2 jmsanzg jmsanzg 4096 jun 24 16:23 .ssh
Wenn ich ssh ausführe, erzwinge ich die Verwendung des Zertifikats und dann funktioniert es
jmsanzg@jmsanz:~$ ssh -i ~/.ssh/id_rsa [email protected]
You have successfully authenticated over SSH. You can use Git to interact with AWS CodeCommit. Interactive shells are not supported.Connection to git-codecommit.us-east-2.amazonaws.com closed by remote host.
Connection to git-codecommit.us-east-2.amazonaws.com closed.
Aber jedes Mal, wenn ich versuche, es direkt auszuführen und die Konfigurationsdatei zu verwenden, schlägt es fehl
jmsanzg@jmsanz:~$ ssh git-codecommit.us-east-2.amazonaws.com
Permission denied (publickey).
Auch wenn ich den Benutzer einstelle, versuche ich herauszufinden, warum es fehlschlägt. Nun, es schlägt auch fehl
jmsanzg@jmsanz:~$ ssh [email protected]
Permission denied (publickey).
Das macht mich wahnsinnig, weil es seit 2015 einwandfrei funktioniert hat und gestern plötzlich nicht mehr funktionierte, ohne dass ich (glaube ich) eine Änderung vorgenommen habe. Ich habe den Parameter -v bei beiden ausprobiert und kann keinen konkreten Unterschied erkennen. Erst am Ende bietet die Befehlszeile den öffentlichen RSA-Schlüssel an
debug1: Authentications that can continue: publickey
debug1: Offering RSA public key: /home/jmsanzg/.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-256 blen 279
debug1: Authentication succeeded (publickey).
während die andere Kommandozeile, die die Konfigurationsdatei verwenden soll, die Datei /home/jmsanzg/.ssh/id_rsa nicht anbietet
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).
BEARBEITEN Um die Sache interessanter zu machen. Ich habe die Dateien config, id_rsa und id_rsa.pub auf einen anderen Computer kopiert. Habe die gleichen Berechtigungen erteilt und ... sie funktionieren in beide Richtungen, mit config und mit der vollständigen Befehlszeile.
Antwort1
Ich hatte das gleiche Problem, ec2 und alles. Beim Ausführen ssh host-name -v
bekam ich connection timed out
. Ich habe versucht:
- Berechtigungen zum Öffnen für eingehenden EC2-SSH
- Öffnen der Chmod-Berechtigungen für .pem (das geht nicht, muss 400 sein)
- Vereinfachen des Schlüsselnamens
Schließlich habe ich meinen Hostnamen noch einmal überprüft und es war die falsche EC2-Instanz. Außerdem gibt es mehrere .ssh/config-Speicherorte:
- /etc/ssh/ssh_config
- ~/.ssh/config
Meines funktioniert jetzt mit der richtigen EC2-Instanz:
- cwd = ~
- Konfigurations-Lokalisierung = ~/.ssh/config
- Konfigurationsdatei
Host terraria
HostName "###-###-##-##-###.compute-1.amazonaws.com"
User ubuntu
IdentityFile ~/.ssh/"Terraria Key.pem"
ssh terraria