Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/86: Рейтинг темы: голосов - 86, средняя оценка - 4.83
 Аватар для NapalmRain
44 / 43 / 7
Регистрация: 18.05.2010
Сообщений: 688

Delphi XE2 и SSH простейшая задача

11.11.2013, 22:16. Показов 22919. Ответов 22
Метки нет (Все метки)

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

Есть простейшая задача: передать любую shell команду на сервер, подключившись к нему по ssh.
Например просто Echo "тест"; и получить ответ от сервера, ошибка или нет. Не более того.
Буду признателен за любую наводку, или за пример кода. Никакого интерфейсного решения не нужно, типа аналога консоли.

Заранее благодарю!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.11.2013, 22:16
Ответы с готовыми решениями:

Что лучше брать Delphi XE2, Delphi XE, Delphi 7?
Привет форумчане! У меня вопрос: что лучше брать Delphi XE2, Delphi XE, Delphi 7? Как вообще различаются серия Delphi XE, и Delphi 7?

Delphi 2010 feat. Delphi XE2
Добрый день. Установлена Делфи 2010. Ставлю ХЕ2. Почитав информацию, понял, что конфликтов не будет. Один нюанс меня заинтересовал: как...

Перевод из Delphi 7 в Delphi XE2
Вообщем Этот код на delphi 7 спокойно компилируется: Function ResolveIP(HostName: String): String; Type tAddr = Array Of...

22
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
11.11.2013, 22:42
Цитата Сообщение от NapalmRain Посмотреть сообщение
типа аналога консоли
Готовая консоль plink.exe в составе putty не спасет ОРД ?
0
 Аватар для NapalmRain
44 / 43 / 7
Регистрация: 18.05.2010
Сообщений: 688
11.11.2013, 23:01  [ТС]
Цитата Сообщение от mss Посмотреть сообщение
Готовая консоль plink.exe в составе putty не спасет ОРД ?
Увы и ах. Мне нужно производить подключение и отправлять команду именно из моей программы. Без подключения сторонних экзешников. Может стороннюю дллку какую можно присобачить? или компоненты есть? Я погуглил, не сказать, что прям очень тщательно, но по первым ответам поисковика ничего толкового не нашёл..
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
11.11.2013, 23:17
Цитата Сообщение от NapalmRain Посмотреть сообщение
Без подключения сторонних экзешников
Достаточно упрятать plink.exe в ресурс своего приложения и стартовать его прямо из памяти, предварительно извлекая туда содержимое подготовленного заранее ресурса.

Вариант этот плох только с т.з. всякой антивирусной хрени, с воплями которой придется мириться, в остальном имеет право на жизнь, избавляя от изобретения очередного велосипеда.

Цитата Сообщение от NapalmRain Посмотреть сообщение
или компоненты есть?
Компоненты-то есть - в составе Indy, к примеру .. Но тащить к себе в приложение шлейф хвостов этого кривого монстра ради в общем несложной задачи - тут сто раз подумать бы надо, прежде чем делать ставку на такое решение ..

Как возможную альтернативу индейской реализации можно посоветовать библ-ку Synapse - она чудесна в соотношении простота/вес/надежность, но и там без воплей антивирусов не обойтись)
0
 Аватар для NapalmRain
44 / 43 / 7
Регистрация: 18.05.2010
Сообщений: 688
12.11.2013, 16:05  [ТС]
Цитата Сообщение от mss Посмотреть сообщение
Достаточно упрятать plink.exe в ресурс своего приложения и стартовать его прямо из памяти, предварительно извлекая туда содержимое подготовленного заранее ресурса.

Вариант этот плох только с т.з. всякой антивирусной хрени, с воплями которой придется мириться, в остальном имеет право на жизнь, избавляя от изобретения очередного велосипеда.



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

Как возможную альтернативу индейской реализации можно посоветовать библ-ку Synapse - она чудесна в соотношении простота/вес/надежность, но и там без воплей антивирусов не обойтись)
Благодарю. Вариант с вшиванием консоли в свой проект оставлю, как запасной.
Сейчас отыскал такую вещь, как cryptlib, в теории должно помочь. Антивирь вроде молчит...
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
12.11.2013, 16:13
Цитата Сообщение от NapalmRain Посмотреть сообщение
отыскал такую вещь, как cryptlib
Так ведь один шиш - придется чужие либы за своим приложением таскать)
Не все ли равно - таскать либы или plink ?

Другой вопрос если при прочих равных условиях проблема с антививями не так остро будет стоять в случае с cryptolib
0
 Аватар для NapalmRain
44 / 43 / 7
Регистрация: 18.05.2010
Сообщений: 688
12.11.2013, 16:22  [ТС]
И так. Нашёл примерчик небольшой.
Испробовал на своём линукс сервере и всё прекрасно. Надеюсь, кому-нибудь пригодится!

Delphi
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
function TForm1.SSH_Client(Server, Userid, Pass: string): TCryptSession;
begin
 result := TCryptSession.Create(CRYPT_SESSION_SSH);
 with result do begin
   ServerName := Server;  { set hostname or IP address }
   UserName := Userid;    { set user identification }
   Password := Pass;      { set password }
 end;
 try
   result.Activate;       { establish SSH connection to server }
 except
   on E: ECryptError do
   begin
     FreeAndNil(result);
   end;
 end;
end;
 
procedure TForm1.sButton4Click(Sender: TObject);
var
 SSH: TCryptSession;
//  Data: PAnsiChar;
 Data: array [0..255] of AnsiChar;
 LenData: Integer;
 BytePushed: Integer;
 BytePoped: Integer;
begin
 cryptInit;
SSH := SSH_Client('ip сервера', 'root', 'пароль');
 if SSH = nil then
   Exit;
 showmessage('зер гуд'); //это у меня логи так выводятся
 SSH.FlushData;
 
 LenData := 255;
 BytePoped := SSH.PopData(addr(Data), LenData);
 showmessage(Data);// получаем приветствие от сервера
 showmessage(IntToStr(BytePoped)); 
 
 Data := 'free'#13; // в качестве теста, получаем информацию о использовании памяти на сервере
 LenData := 5;
 SSH.PushData(addr(Data), LenData, BytePushed);
 
 SSH.FlushData;
 
 LenData := 255;
 BytePoped := SSH.PopData(addr(Data), LenData);
 showmessage(Data); //выводим то, что вернул сервер.
 
 FreeAndNil(SSH);          // закругляемся
 cryptEnd;
end;
Кому не лень, может набросать компонент, или класс. Люди скажут спасибо)
0
 Аватар для NapalmRain
44 / 43 / 7
Регистрация: 18.05.2010
Сообщений: 688
12.11.2013, 16:25  [ТС]
Цитата Сообщение от mss Посмотреть сообщение
Так ведь один шиш - придется чужие либы за своим приложением таскать)
Не все ли равно - таскать либы или plink ?

Другой вопрос если при прочих равных условиях проблема с антививями не так остро будет стоять в случае с cryptolib
Ну, мне кажется библиотеки всё таки таскать правильнее, что ли. Но это уже дело вкуса.
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
12.11.2013, 16:28
Цитата Сообщение от NapalmRain Посмотреть сообщение
набросать компонент, или класс
А этот самый TCryptSession - он разве не компонент и не класс ?)

Добавлено через 1 минуту
Цитата Сообщение от NapalmRain Посмотреть сообщение
библиотеки всё таки таскать правильнее, что ли
Дык переименуй plink.exe в ssh.dll - вот тебе и библиотека)
Не полезет же израильская разведка вынюхивать "подвох")
0
 Аватар для NapalmRain
44 / 43 / 7
Регистрация: 18.05.2010
Сообщений: 688
12.11.2013, 16:30  [ТС]
Цитата Сообщение от mss Посмотреть сообщение
А этот самый TCryptSession - он разве не компонент и не класс ?)
виноват, не правильно выразился. Не класс, а именно визуальный компонент.
Который можно установить, бросить на форму и пользоваться. Ну это если кому-то будет нужно. Просто нашёл такой компонент в природе существует, но он платный.
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
12.11.2013, 16:34
Цитата Сообщение от NapalmRain Посмотреть сообщение
Не класс, а именно визуальный компонент.
Который можно установить, бросить на форму и пользоваться
Так там, на сайте криптолиба, автор вроде бы какому-то перцу спешиэлсенкс выдал за оболочечный ActiveX-контрол над криптолибой - оно разве не оно ?)
0
 Аватар для NapalmRain
44 / 43 / 7
Регистрация: 18.05.2010
Сообщений: 688
12.11.2013, 16:41  [ТС]
Цитата Сообщение от mss Посмотреть сообщение
Так там, на сайте криптолиба, автор вроде бы какому-то перцу спешиэлсенкс выдал за оболочечный ActiveX-контрол над криптолибой - оно разве не оно ?)
Честно признаться, не заметил этого. Находил сторонний компонент.
0
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 19
12.10.2015, 16:02
NapalmRain, удалось ли вам решить задуманную задачу?
Я сейчас пытаюсь решить свою, подобную.
Необходимо отправить всего одну команду на сервер.
0
3 / 3 / 1
Регистрация: 09.09.2013
Сообщений: 116
26.04.2016, 16:44
Тема поднимается, как всё таки установить соединение по SSH в Delphi
1
 Аватар для NapalmRain
44 / 43 / 7
Регистрация: 18.05.2010
Сообщений: 688
08.06.2016, 16:55  [ТС]
Да, господа, все, кто задавал вопрос: удалось. Удалось установить соединение и даже написать простейшую консоль.
Проблемка в том, что надо найти исходники, чтоб показать пример. Давно это было, уже затерял. Постараюсь отыскать.
1
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 19
08.06.2016, 20:48
я для себя решил эту задачу используя plink + cmd + IdIcmpClient (indy7 или indy10 не важно)
0
 Аватар для NapalmRain
44 / 43 / 7
Регистрация: 18.05.2010
Сообщений: 688
09.06.2016, 18:18  [ТС]
Что-то я затупил, господа хорошие, пример же выложен в сообщении номер 7
Всё работает успешно
1
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 19
09.06.2016, 20:23
Увидел, благодарю, буду подключать в свою программу
0
0 / 0 / 1
Регистрация: 05.06.2014
Сообщений: 175
28.01.2017, 16:38
кто-то на xe7 - xe8 запускал?

Добавлено через 16 часов 48 минут
Народ помогите запустить за пиво или денежку. надо Убунтой управлять немного. заний не хватает найти причину.
0
3 / 3 / 1
Регистрация: 09.09.2013
Сообщений: 116
29.01.2017, 11:38
Цитата Сообщение от lotes Посмотреть сообщение
кто-то на xe7 - xe8 запускал?
Добавлено через 16 часов 48 минут
Народ помогите запустить за пиво или денежку. надо Убунтой управлять немного. заний не хватает найти причину.
Как с тобой связаться?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.01.2017, 11:38
Помогаю со студенческими работами здесь

Delphi xe2
Ребята очень прошу дайте ссылку на скачивание delphi xe2 В интернете бред.

Ошибки в delphi XE2
Вылитают ошибки expected End but received '=' expected the end of file but ceceived an idenifier create Сам код unit Unit1; ...

Delphi XE2 - 2007
Когда загружаю проект, написанный на Delphi 2007, в Delphi XE2, выдаёт такую ошибку: http://i.**********/KRpIs.jpg

Indy10 на Delphi xe2
Здравствуйте. Есть у кого-нибудь примеры реализации чата и передачи файлов на Indy10, на компонентах IdTCPClient и IdTCPServer? ...

PNG в delphi XE2
Какими средствами загрузить в image картинку png в delphi xe2?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru