Ich versuche, ein PHP-Skript, das auf dem Terminal ausgeführt wird, die eine Verbindung zu einem Remote-Server durch SSH herstellen und eine Datei abrufen würde. so weit dies ist mein CodeVerbindung versuchen mit ssh2_auth_pubkey_file()
#!/usr/bin/php -q
<?php
$cwd = dirname(__FILE__).'/';
$filename = 'retrive-this.file';
$host = 'hostip';
$connection = ssh2_connect($host, 22, array('hostkey'=>'ssh-rsa'));
$methods = ssh2_auth_pubkey_file($connection, 'remoteuser',
$cwd.'ssh/id_rsa.pub',
$cwd.'ssh/id_rsa', "it's an inception");
var_dump($methods);
//ssh2_scp_recv($connection, "/remote/server/path/to/$filename", $cwd.$filename);
?>
für jetzt habe ich Probleme habe mit der ssh2_auth_pubkey_file()
Funktion, wenn ich das Skript ausführen es diese gibt:
PHP Warning: ssh2_auth_pubkey_file(): Authentication failed for remoteuser using public key in /home/tonyl/Projects/get-file-ssh.php on line 10
bool(false)
Die Schlüsseldateien haben die Erlaubnis -rw-r--r--
(644). Auch der öffentliche Schlüssel ist bereits den autorisierten Schlüsseln des Remote-Benutzers hinzugefügt. Ich bin in der Lage, ssh mit dem Befehl ssh als normal, so dass ich glaube nicht, es ist ein SSH-Autorisierung Problem, aber wer weiß. Ich bin neu in ssh und der ssh2 php Bibliothek.
Ich kann verbinden mit ssh2_auth_password()
, wenn ich es in der Remote-sshd_config-Datei aktivieren, aber ich möchte das nicht tun, da es Sicherheitsübertragung verringert.
Irgendwelche Ideen, was ich tun kann.
Standard-Dir wäre '.ssh', nicht' ssh', könnte das das Problem sein? Und id_rsa sollte wirklich 0600 sein, im Besitz des Benutzers, der verbindet. – Wrikken
Wenn dies mit ssh von der Kommandozeile aus funktioniert, ist es fast unmöglich zu debuggen, ohne libssh2 mit einem Debugger zu betreten. Sie könnten auch versuchen, zuerst PHP mit strace auszuführen, um zu sehen, ob Sie etwas faul finden können. – Artefacto
Ich kann zumindest bestätigen, dass dies die _exact_ Fehlermeldung ist, die man erhält, wenn die öffentlichen/privaten Schlüsseldateien nicht existieren. – Wrikken