ssh mit Konfiguration funktioniert nicht, aber ssh mit vollständiger Befehlszeile funktioniert

ssh mit Konfiguration funktioniert nicht, aber ssh mit vollständiger Befehlszeile funktioniert

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 -vbekam 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

verwandte Informationen