Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.99/165: Рейтинг темы: голосов - 165, средняя оценка - 4.99
36 / 32 / 23
Регистрация: 28.12.2015
Сообщений: 264

SSH, выполнение команд

04.02.2016, 21:09. Показов 32860. Ответов 32
Метки ssh (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!

У меня есть VPS, на котором необходимо выполнять команды (зайти в директорию, старт, стоп) - всё это, я делаю через putty. Как можно в C# сделать подключение к SSH для выполнения этих команд? Подскажите пожалуйста.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.02.2016, 21:09
Ответы с готовыми решениями:

Не выполняется одна из команд при работе с SSH
Есть следующий код, задача которого установить под ключ прокси-сервер 3proxy: SshClient sshClient = new SshClient(host, 22, login,...

Выполнение команд голосом
Здравствуйте, я новичок, но захотелось поиграться с такой штукой как выполнение команд голосом. Google Voice Search пока не могу разобрать,...

Скрытое выполнение команд
Здравствуйте. Учусь на факультете информационной безопасности и в качестве дз по программированию дали написать программу, которая...

32
0 / 0 / 1
Регистрация: 26.02.2015
Сообщений: 59
21.10.2016, 21:32
Студворк — интернет-сервис помощи студентам
Fedor_Fedorov, Спасибо, правда решил вопрос через команду sed , но возьму на заметку
0
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 5
30.03.2017, 16:20
А подскажите плиз как запустить скрипт&
C#
1
var terminal = sshclient.RunCommand("cd /home/ospo/env_1/; sh twit01.sh");
- не работает.
Пустая строка
0
36 / 32 / 23
Регистрация: 28.12.2015
Сообщений: 264
30.03.2017, 16:28  [ТС]
Coffing, попробуйте все варианты:
C#
1
2
3
var terminal = sshclient.RunCommand("cd /home/ospo/env_1; sh /twit01.sh");
var terminal = sshclient.RunCommand("cd /home/ospo/env_1/ | sh twit01.sh");
var terminal = sshclient.RunCommand("cd /home/ospo/env_1/ && sh twit01.sh");
1
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 5
30.03.2017, 16:36
lumiLilo

К сожалению ни один из вариантов не работает.

При этом все остальные команды он выполняет:
cd, ls, ps -ef | grep, killall, kill -9 и т.д
0
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 5
05.04.2017, 10:14
lumiLilo,

К сожалению ни один из вариантов не работает.

При этом все остальные команды он выполняет:
cd, ls, ps -ef | grep, killall, kill -9 и т.д
0
36 / 32 / 23
Регистрация: 28.12.2015
Сообщений: 264
05.04.2017, 10:20  [ТС]
Coffing, я видел ваше сообщение)) к сожалению, ничем помочь не могу, не силен в этом и линукса под рукой нет, чтобы потестить.
0
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 5
05.04.2017, 12:49
lumiLilo,
Спасибо за ответ

У меня еще один вопрос, подумал вдруг это что-то прояснит.

Выполняю ту же самую команду и вывожу результат работы в textbox
C#
1
2
3
4
                   sshclient.Connect();
                   var terminal = sshclient.RunCommand("cd /home/ospo/env_1; sh twi_01.sh");
                   var output = terminal.Result;
                   textBox1.Text = output;

Выводит сообщение "No suitable Oracle client library found. Will not start"
Не понимаю при чем тут вобще оракловый клиент

Добавлено через 2 часа 23 минуты
lumiLilo,
Локализовал свою проблему

Проблема в самом скрипте.
Есть строчка
echo "/home/ospo/env_1/TWInterchange/BIN.Lnx-x64/TWIT01" | sh

И получается что C# не понимает данную конструкцию, не понимает именно "| sh"
Помогите плиз переписать данную конструкцию, если есть возможность.

Заранее спасибо.
0
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 13
13.04.2017, 14:30
Подскажите пожалуйста с моимт траблом
пытаюсь выполнить порядок команд:
Bash
1
2
3
4
5
6
7
mkdir /mnt/update_AIS
mount -t cifs -o user=ivan@iavandomen.local,password='123',sec=ntlmi,iocharset=utf8 //10.64.4.14/papka_obmena/update /mnt/update_AIS/
rm -r -f /home/fssp/pksp/updates/*
cp -r /mnt/update_AIS/* /home/fssp/pksp/updates/
cd /home/fssp/pksp-admin/
./update-db.sh
umount /mnt/update_AIS
из этих пунктов папка update_AIS создается и внее монтируется назначенная мной папка, далее должно все удалиться из папки /home/fssp/pksp/updates/ но этого не происходит (хотя если выполнять не пачкой, а отдельно, то все удаляется) далее из папки /mnt/update_AIS/ в папку /home/fssp/pksp/updates/ все прекрасно копируется и далее должен запуститься файл update-db.sh из папки /home/fssp/pksp-admin/ но этого не происходит. В патти все работает...

Добавлено через 1 час 33 минуты
Проблема как с Renci так и с SharpSsh

Прикладываю код с SharpSsh
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Tamir.SharpSsh;
 
namespace WindowsFormsApplication10
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string ver = textBox1.Text;
 
            SshExec exec = new SshExec("10.64.115.150", "root", "password");
            exec.Connect();
            exec.RunCommand(ver);
            exec.Close();
                     
        }
    }
}
0
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 13
17.04.2017, 08:33
проблема была в том, что для Windows переход на следующую строчку это 2 символа, а для Linux это 1 символ.

добавил замену и все ок:
C#
1
2
3
4
5
string s = textBox1.Text;
                s = s.Replace("\r\n", "\n");
                sshclient.Connect(); //подключиться
                sshclient.CreateCommand(s).Execute();
                sshclient.Disconnect(); //отключиться
0
0 / 0 / 0
Регистрация: 29.10.2017
Сообщений: 4
29.10.2017, 17:20
Нужно вывести в текстовое поле результат выполнения команды LS. Подскажите пожалуйста что не так делаю....

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
            using (var client = new SshClient(connectionInfo))
            {
                try
                {
                    client.Connect();
                    if (client.IsConnected)
                    {
                        rTxtOrd.Text = client.RunCommand("ls").Result;
                        MessageBox.Show("SSH connection active");
                        
                    }
                    else
                    {
                        MessageBox.Show("SSH connection NOTactive");
                    }
 
 
 
                }
                catch { }
                }
        }
0
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 13
30.10.2017, 09:17
Привет Cropse. Это же библиотека Renci?

Попробуй так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
            using (var client = new SshClient(connectionInfo))
            {
                try
                {
                    client.Connect();
                    if (client.IsConnected)
                    {                        
                        rTxtOrd.Text = client.CreateCommand("ls").Execute();
                        MessageBox.Show("SSH connection active");
                        
                    }
                    else
                    {
                        MessageBox.Show("SSH connection NOTactive");
                    }
 
 
 
                }
                catch { }
                }
        }
0
0 / 0 / 0
Регистрация: 29.10.2017
Сообщений: 4
04.11.2017, 12:56
Нет работает (
0
 Аватар для moverast
8 / 10 / 0
Регистрация: 30.04.2011
Сообщений: 199
11.01.2021, 14:59
Цитата Сообщение от NikLs Посмотреть сообщение
Попробуй сделать так для наглядности.
...
Кроме "result.Result" полезно ещё посмотреть "result.Error"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2021, 14:59

Выполнение нескольких команд BAT файлов
Пример ниже позволяет выполнить одну команду в командной строке: System.Diagnostics.Process.Start("cmd.exe", "/C "...

Выполнение команд в консоли. Как выполните вход в определенный каталог
подскажите пожалуйста, как выполните вход в определенный каталог... Использую код для запуска консоли... ProcessStartInfo psi = new...

Shutdown в C# выполнение команд, через вин-форму, как в ком.строке)
Доброго времени суток! Небольшая предыстория, для ясности: Я только начинаю знакомиться с программированием. И как многие советуют -...

Try-Catch. Как продолжить выполнение следующих команд за "проблемной"
К примеру есть такой код: try { for (int index = 0; index < BodyData.Rows.Count; index++) { Time1=...

Выполнение команд консольной программы из другой программы
Подскажите пожалуйста можно ли получить контроль над консольной прогой из другой самописной проги. То есть есть запущеная консольная прога,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru