Запустите несколько команд через SSH внутри контейнера docker из C#

#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. Добро пожаловать, не стесняйтесь отмечать этот ответ как решение 🙂