Я пытаюсь создать скрипт php, который запускается на терминале, который подключится к удаленному серверу по ssh и получит файл. пока это мой код
#!/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);
?>
на данный момент у меня проблемы с функцией ssh2_auth_pubkey_file()
, когда я запускаю скрипт, он возвращает это:
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)
Файлы ключей имеют разрешение -rw-r--r--
(644). Также открытый ключ уже добавлен к авторизованным ключам удаленного пользователя. Я могу ssh с помощью команды ssh как обычно, поэтому я не думаю, что это проблема авторизации ssh, но кто знает. Я новичок в ssh и php-библиотеке ssh2.
Я могу подключиться, используя ssh2_auth_password()
, если я включу его в удаленном файле sshd_config, но я не хочу этого делать, так как это уменьшает передачу безопасности.
Любые идеи о том, что я могу сделать.