2015-08-28 2 views
1

На моем компьютере с Windows я использую модуль SSH-Session на PowerShell, и я хочу использовать sudo для выполнения специальной команды на моем сервере.Использование sudo с SSH-сессией от PowerShell

Но когда я запускаю мою sudo команду через SSH-сессии у меня есть эта ошибка:

sudo: no tty present and no askpass program specified

Я не хочу использовать PuTTY или команду ssh, поэтому параметр -l не проблема!

Если возможно, я не хочу изменять конфигурацию сервера SSH.

Я хочу знать, как заставить псевдо-распределение tty в PowerShell?

Благодаря

+0

Вы разрешили изменить ваш sudoers файл, чтобы разрешить конкретную установку для этого пользователя? В основном SSH-сессия основана на SSH.NET (http://sshnet.codeplex.com/). Из того, что я знаю, он не поддерживает включение psuedo-tty (что, я считаю, решило бы эту проблему). Итак, что вам нужно сделать, подробно описан в этом ответе: http://unix.stackexchange.com/a/80159/1347 (я думаю ...:)) – Kev

+0

В консоли Linux я могу без проблем выполнить команду sudo с одним и тем же пользователем. Я думаю, что нет необходимости обновлять «файл sudoers», но опция (если она существует) на PowerShell – general03

ответ

0

Теперь вы можете использовать Open SSH exe, нажав Microsoft here.

После запуска PowerShell как администратор

ssh 192.168.1.123 -p 22 -l general03 
1

Модуль SSH-Session основан на SSH.NET library.

Библиотека SSH.NET поддерживает распределение псевдотерминалов, но модуль SSH-Session не раскрывает функциональность.

Вам необходимо будет изменить код SSH-Session, чтобы сделать его доступным.

  • Либо использовать Shell класс (SshClient.CreateShell), который неявно запрашивает псевдо-терминал.

  • Или явно запросите псевдотерминал, используя ChannelSession.SendPseudoTerminalRequest.


Или измените sudoers configuration file не требовать терминал псевдо для sudo (удалить requiretty опцию, которая по умолчанию отключена, кстати).


Или используйте SSH.NET напрямую, без модуля SSH-Session.

Смотрите эти вопросы для некоторого кода:

+0

Спасибо @MartinPrikryl, но знаете ли вы, где мне нужно изменить код? – general03

+0

Нет. Как насчет использования SSH.NET напрямую, без модуля SSH-Session? –

+0

SSH-Session - это не единственный способ использовать SSH через SSH.NET в PowerShell? – general03

Смежные вопросы