Передайте ключевую фразу внешней команде SSH в Windows.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Передайте ключевую фразу внешней команде SSH в Windows.

Сообщение Anonymous »

Я использую Symfony Process для запуска SSH-клиента, входящего в комплект Windows, в PHP-скрипте командной строки. Настройки удаленного сервера хранятся в файле C:\Users\MYUSERNAMEHERE\.ssh\config, соединение устанавливается с помощью закрытого ключа, и я запускаю команду вручную под своим личным пользователем.
Запрос на ввод пароля закрытого ключа обрабатывается нормально, если я не делаю каких-либо специальных действий: я ввожу его, когда предлагается, и все в порядке. Однако это накладывает несколько ограничений:
  • Я не могу ввести пароль, пока не будут завершены предыдущие шаги сценария.
    < li>Мне нужно вводить его каждый раз, когда я запускаю SSH в своем скрипте.
Я предпочитаю сам запрашивать пароль, а затем передавать его SSH как много раз по мере необходимости. Я пытался использовать для этого входные данные процесса, но ничего из того, что я пытался, не помогло. В зависимости от того, что я делаю, я получаю два результата:
  • Скрипт по-прежнему останавливается с сообщением «Введите кодовую фразу для ключа».
  • Процесс запускается и завершается сбоем, код выхода равен нулю, стандартный вывод процесса и стандартный поток stderr пусты, а терминал показывает «Введите кодовую фразу для ключа».
Это одна из итераций:

Код: Выделить всё

$input = new InputStream();
$process = new Process('ssh connectionnamehere ls -Al');
$process->setInput($input);
$process->start();
//$process->wait();
$input->write('MYSSHPASSWORDHERE'. "\r\n"); // Temporarily hard-coded until I figure this out
$input->close();
var_dump(
$process->isSuccessful(),
$process->getExitCode(),
$process->getExitCodeText(),
$process->getOutput(),
$process->getIncrementalOutput(),
$process->getErrorOutput(),
$process->getIncrementalErrorOutput()
);

Код: Выделить всё

bool(false)
NULL
NULL
string(0) ""
string(0) ""
string(0) ""
string(0) ""
Enter passphrase for key 'C:\Users\MYUSERNAMEHERE\.ssh\id_rsa-redacted':
Чего мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/787 ... on-windows
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»