С# WinSCP предоставляет пользователю возможность принять или отклонить ключ RSA

Я использую WinSCP для передачи некоторых файлов в другую систему, но у меня возникают некоторые проблемы. Поскольку я собирался использовать эту программу C # на разных устройствах, ключи не совпадают, поэтому я хотел бы распечатать окно сообщения или что-то похожее на то, что пользователь дает им возможность, которую вы обычно видите через WinSCP.com:

winscp> (U)pdate,(A)dd,Can(n)cel,(C)opy Key,(S)kip: Cancel

Прямо сейчас я показываю параметры пользователю с помощью winscp.StandardOutput.ReadLine() и даю им выбор, что вернуть с помощью winscp.StandardInput.WriteLine([user choice]), но это, похоже, не работает. Я продолжаю получать сообщение «Ключ хоста не проверен!». Любые предложения о том, как подойти к этому? Спасибо.

Изменить: я считаю, что это как-то связано с WinSCP, не ожидающим ввода. Я изменил параметр эха на «включено», чтобы я мог видеть свой ответ, и мой ответ возникает после того, как WinSCP уже отклонил соединение.

Мои параметры в WinSCP в настоящее время: пакетное прерывание, подтверждение, эхо.

Итак, теперь я предполагаю, что WinSCP все равно будет ждать моих команд из .exe?


person Matt    schedule 19.12.2011    source источник


Ответы (1)


До сих пор у меня это работало через первое соединение «psudo». Я знаю, что это не очень красиво, и люди будут (и, вероятно, должны) кричать на меня за то, что я делаю это таким образом. Сначала я пытаюсь подключиться к конечному устройству,

winscp.StandardInput.WriteLine(open scp://name:[email protected]);

Но это только для того, чтобы получить ключ от конечного устройства, так как я могу сканировать выходные данные winscp и найти сообщение, которое показывает этот прекрасный ключ. Итак, теперь, зная RSA-ключ моего устройства, я могу запросить пользователя: «Ваш ЦП не знает это устройство… Все равно подключиться?» [да/нет/отмена]. Если они скажут да, я могу явно указать winscp ключ хоста, который я ищу, и подключиться,

winscp.StandardInput.WriteLine(open scp://name:[email protected] -hostkey: *****);

Как я уже сказал, это не самое красивое, и я хотел бы сделать это с одной попыткой подключения. Но что делает работу правильно? Я все еще изучаю это для лучшего варианта.

person Matt    schedule 20.12.2011