Suchen
Inside Forum
Nützliche Links




 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > PHP > PHP

PHP Alles rund um PHP

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 16.05.2018, 21:24
ParryHotter ParryHotter ist offline
Besucher
 
Registriert seit: 15.11.2011
Beiträge: 31
Standard Serverzugang mit Public-/PrivateKey

Hallo zusammenn,

ich habe heute den ganzen Tag recherchiert und komme leider keinen Schritt weiter.

Ich möchte gern, dass täglich eine Datei auf einen externen Server übertragen wird. Für den Serverzugang war ein PrivateKey gewünscht, den ich via Putty generiert und an den Serverinhaber geschickt habe, der anhand dessen wiederum den Zugang erstellt hat.

Als erstes muss ich sagen, dass ich damit noch nie gearbeitet habe und daher komplett auf dem Schlauch stehe und wohlmöglich auch Blödsinn gemacht habe.

1. Ich habe im Putty Key Generator über "conversations" den PrivateKey im OpenSSH-Format als "id-rsa" gespeichert.
Die Datei sieht so aus:
Code:
-----BEGIN OPENSSH PRIVATE KEY-----
AAABAA9MXhoNos4TrMRdU0KCYEW3w85P1rINELSDt6mVQ1p1JaXsQXebWrtNXa+r
...
-----END OPENSSH PRIVATE KEY-----


2. Ich habe die Datei "id-rsa.pub" manuell angelegt, und den erzeugten PublicKey aus dem Putty-Fenster dort eingefügt.
Code:
ssh-rsa AAAAB3NzaC1yc2EAAA ... WvIw== rsa-key-20180228


3. Ich habe auf MEINEM Server unter /home/ das Verzeichnis ".ssh" angelegt und beide Dateien via Filezilla dorthin übertragen. Der Ordner hat die Rechte 700, die beiden Dateien 755.

4. Für den Verbindungsaufbau habe ich den Standard-Code verwendet:
PHP Quellcode:
$ssh_connection = ssh2_connect('externerServer.com', 22, array('hostkey'=>'ssh-rsa'));

if (ssh2_auth_pubkey_file($ssh_connection, 'user', '/home/.ssh/id_rsa.pub', '/home/.ssh/id_rsa'))
{
  echo "Public Key Authentication Successful\n";
} else
{
  die('Public Key Authentication Failed');
}


Resultat: Die Datei wird gefunden, jedoch ein Fehler zurückgegeben:
Warnung:
Warning: ssh2_auth_pubkey_file() [function.ssh2-auth-pubkey-file]: Authentication failed for USER using public key: Callback returned error in ...


Was habe ich falsch gemacht? Denn offensichtlich scheint der Key nicht übereinzustimmen. Habe ich die Keys falsch gespeichert?

Dazu muss ich noch sage: Über Filezilla komme ich problemlos auf den externen Server, wenn ich den PrivateKey dort hochlade.

Vielen Dank schon mal für eure Hilfe!
Mit Zitat antworten
  #2  
Alt 16.05.2018, 21:41
chrishorn chrishorn ist offline
Engagierter Besucher
 
Registriert seit: 21.11.2011
Beiträge: 620
Standard AW: Serverzugang mit Public-/PrivateKey

Ist jetzt auch nur der Gedanke eines Laien, aber normalerweise erzeugt ihr beide ein private/public Keypaar und tauscht dann nurnoch den public Key aus. Den private Key des anderen sollte keiner haben.
Mit Zitat antworten
  #3  
Alt 17.05.2018, 00:28
Kasalop Kasalop ist offline
Forum-Mitarbeiter
 
Registriert seit: 29.12.2006
Ort: München
Beiträge: 5.858
Standard AW: Serverzugang mit Public-/PrivateKey

Zitat:
Zitat von chrishorn Beitrag anzeigen
Ist jetzt auch nur der Gedanke eines Laien, aber normalerweise erzeugt ihr beide ein private/public Keypaar und tauscht dann nurnoch den public Key aus. Den private Key des anderen sollte keiner haben.
Nein das ist Unsinn. Man generiert ein Key-Paar und behält den Privaten Schlüssel, aber der öffentliche muss ja irgendwie auf den Server kommen, bei welchem man sich so authentifizieren möchte und dies geht nur, wenn der Admin diesen Key bei sich einträgt. Wie du sagst: Den privaten Schlüssel sollte niemand sonst haben, aber der öffentliche kann nun mal öffentlich sein... wäre doof wenn der reichen würde um sich beim server zu authentifizieren

@TE:
Zitat:
Zitat von ParryHotter Beitrag anzeigen
Dazu muss ich noch sage: Über Filezilla komme ich problemlos auf den externen Server, wenn ich den PrivateKey dort hochlade.
Wo lädst du den privaten Schlüssel hoch um ihn in FileZilla zu verwenden? oO

Zitat:
Zitat von ParryHotter Beitrag anzeigen
3. Ich habe auf MEINEM Server unter /home/ das Verzeichnis ".ssh" angelegt und beide Dateien via Filezilla dorthin übertragen. Der Ordner hat die Rechte 700, die beiden Dateien 755.
755 ist für ssh keys ein bißchen heftig. Bitte nur auf 600 setzen. Das sollte ausreichen.

Dein privater Schlüssel ist nicht ausreichend geschützt. Du solltest ein Kennwort vergeben! Dieses musst du dann in der ssh2_auth_pubkey_file funktion als letzten Parameter angeben.

Weiterhin solltest du (ebenfalls aus Sicherheitsgründen) auch den anderen Server überprüfen. Das kannst du mit der folgenden Funktion machen:
DOKU-VORLESE-SERVICE(TM)
string ssh2_fingerprint(resource session[, int flags = SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX])
Retrieve fingerprint of remote server


BTT: Ansonsten sieht es ganz gut aus. Versuch mal mit file_get_contents die Dateien zu lesen und schau ob der apache User Zugriff auf diese hat. Ich vermute hier ein Rechte Problem. Du kannst auch (aber bitte nur temporär) die Rechte für den Ordner und die Dateien hochsetzen, sodass alle Nutzer/Rollen Zugriff haben.

Falls das aber nicht das Problem sein sollte... zeig uns evtl. nochmal testweise Schritt für Schritt wie du die Schlüssel generiert hast.

Lg Kasalop
__________________
Es gibt 10 Arten von Menschen auf der Welt. Die die die binäre Mathematik verstehen und die die sie nicht verstehen!

Zu welcher der Gruppen gehörst du?

Geändert von Kasalop (17.05.2018 um 02:37 Uhr)
Mit Zitat antworten
  #4  
Alt 17.05.2018, 09:08
ParryHotter ParryHotter ist offline
Besucher
 
Registriert seit: 15.11.2011
Beiträge: 31
Standard AW: Serverzugang mit Public-/PrivateKey

Vielen Dank erstmal für die Antworten!

Zitat:
Zitat von Kasalop Beitrag anzeigen
Wo lädst du den privaten Schlüssel hoch um ihn in FileZilla zu verwenden? oO
Als Verbindungsart "Schlüsseldatei", dann auf durchsuchen. "Hochladen" war da natürlich der falsche Ausdruck.

Zitat:
Zitat von Kasalop Beitrag anzeigen
755 ist für ssh keys ein bißchen heftig. Bitte nur auf 600 setzen. Das sollte ausreichen.
Das habe ich nur vorübergehend gemacht, um ausschließen zu können, dass es an den Rechten liegt.

Zitat:
Zitat von Kasalop Beitrag anzeigen
BTT: Ansonsten sieht es ganz gut aus. Versuch mal mit file_get_contents die Dateien zu lesen und schau ob der apache User Zugriff auf diese hat. Ich vermute hier ein Rechte Problem. Du kannst auch (aber bitte nur temporär) die Rechte für den Ordner und die Dateien hochsetzen, sodass alle Nutzer/Rollen Zugriff haben.
Habe ich gemacht und es hat funktioniert. Die Keys wurden mir angezeigt.
Direkt darunter habe ich mir dann den PublicKey anzeigen lassen, den ich an den Serverinhaber verschickt habe. Dabei ist mir aufgefallen, dass sich diese durch Zeilenumbrüche unterschieden haben.
Also habe ich den verschickten 1:1 in meine id-rsa.pub kopiert, sodass sie exakt gleich aussehen.
Nun erhalte ich eine andere Fehlermeldung:
Warnung:
Authentication failed for USER using public key: Username/PublicKey combination invalid

Also erst
Warnung:
Callback returned error
, jetzt
Warnung:
Username/PublickKey combination invalid
Mit Zitat antworten
  #5  
Alt 17.05.2018, 10:50
ParryHotter ParryHotter ist offline
Besucher
 
Registriert seit: 15.11.2011
Beiträge: 31
Standard AW: Serverzugang mit Public-/PrivateKey

Ich habe den Fehler gefunden: Beim Exportieren des PrivateKeys hatte ich das falsche OpenSSH-Format.

Falsch:
Code:
-----BEGIN OPENSSH PRIVATE KEY-----


Richtig:
Code:
-----BEGIN RSA PRIVATE KEY-----
Mit Zitat antworten


Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
__set bei public value... Dave22 PHP 3 05.12.2011 01:15
Problem mit ssh und public key authentication _prophet Administration 0 23.07.2010 08:44
public andy-ty PHP 18 25.05.2008 01:59
abstract public func -oder- public abstract func?! kekster PHP 2 09.08.2007 12:03
Kostenlosen Serverzugang DSK-Soft Administration 2 10.04.2007 11:08


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:18 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC