#c# #docker #ssh #freeradius
#c# #docker #ssh #freeradius
Вопрос:
Мне нужно запустить несколько команд в контейнере docker через SSH из C #. Я использую Renci.sshnet для подключения по ssh. Вот мой код:
{
ssh.Connect();
var command = ssh.CreateCommand("sudo docker exec - it freeradius bash amp;amp;" " echo User-Name=" username ",Framed-IP-Address=" framedipaddress "| radclient -x " nasipaddress ":1700 disconnect a1rp0c9ptio8");
strReturn = command.Execute().ToString();
}
если я выполняю вручную, эти две команды строк работают нормально для меня. но из ssh не работает…есть идеи, пожалуйста???
Ответ №1:
Вы можете задать свою полную команду в параметре bash -c
:
$ docker exec -it sad_kilby bash -c "echo 123 amp;amp; echo $? amp;amp; ls / | grep etc"
123
0
etc
Итак, ваша команда будет выглядеть следующим образом:
string subcommand = "echo User-Name=" username ",Framed-IP-Address=" framedipaddress "| radclient -x " nasipaddress ":1700 disconnect a1rp0c9ptio8"
var command = ssh.CreateCommand("sudo docker exec -it freeradius bash -c "" subcommand """)
Комментарии:
1. Добро пожаловать, не стесняйтесь отмечать этот ответ как решение 🙂