|
|
  |
построить GUI, SSH, графический вывод |
|
|
|
Feb 13 2012, 08:32
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата Отправляет данные по SSH в виде файла Это как? SSH файлы не передает. Или имеется в виду SCP? Цитата существуют ли открытые исходники ssh клиентов? OpenSSH например. Да и через command line клиента SSH тоже можно работать (через тот же OpenSSH например).
|
|
|
|
|
Feb 13 2012, 11:18
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(Zelepuk @ Feb 11 2012, 10:43)  возможна ли реализация взаимодействия какого либо ssh клиента(как putty) и самописного GUI? если встроить SSH клиент в GUI, то существуют ли открытые исходники ssh клиентов? Если хост-система Linux, то совсем просто - sshfs позволяет монтировать удаленные фс, в прикладной программе с GUI даже не нужно знать о существовании удаленного хоста, все будет как с обычными локальными файлами. http://blog.sjinks.pro/administering/119-m...-ssh-in-ubuntu/думаю если поискать то и для Windows должно быть что-то подобное - например в виде сетевого диска.
|
|
|
|
|
Feb 16 2012, 14:01
|
Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182

|
Цитата(XVR @ Feb 16 2012, 16:09)  Можно конечно. Запускаете ssh клиента (от OpenSSH например), который запускает там скрипт (на perl например), который периодически читает файл и печатает его в stdout. У себя читаете stdout от запущеного ssh клиента, парсите его и показываете, что надо Зачем так громоздко? scp как раз предназначен для копирования файлов. Запускается scp раз в дцать секунд и копирует файл во временный каталог программы. Под Windows есть pscp http://www.chiark.greenend.org.uk/~sgtatha...y/download.html работает аналогично каноничному scp. Ради интереса попробовал только что с линуксовой машины скопировать файл на виндовую - работает. pscp.exe user@host:/path/to/file C:\path\to\local\copy Правда не знаю как тут (в винде и pscp) с аутентификацией по ключам, но у самой софтины есть опасная опция -pw для указания пароля в открытом виде.
--------------------
typedef enum { no, yes, maybe } bool; | блог тут
|
|
|
|
|
Feb 16 2012, 17:19
|
Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182

|
Цитата(Zelepuk @ Feb 16 2012, 18:00)  А как это сделать автоматически по Windows? Например, парсить командную строку pscp в самой программе и вызывать с помощью ShellExecute() или аналогичного, Либо в bat-файл засунуть вызов pscp и вызывать из программы этот bat-файл.
--------------------
typedef enum { no, yes, maybe } bool; | блог тут
|
|
|
|
|
Feb 16 2012, 17:36
|
Знающий
   
Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464

|
Цитата(Cosmojam @ Feb 16 2012, 21:19)  Например, парсить командную строку pscp в самой программе и вызывать с помощью ShellExecute() или аналогичного, Либо в bat-файл засунуть вызов pscp и вызывать из программы этот bat-файл. простите, но чувствую что я ламер((( можете ли вы рассказать подробнее о том КАК парсить командню строку? про батник мне "более или менее" понятно.
|
|
|
|
|
Feb 16 2012, 19:17
|
Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182

|
Так же как обычную строку. Сишный псевдокод: Код char *username = "vasya"; // спросим у пользователя эти данные char *host = "192.168.1.150"; char *password = "1234"; char *remote_file = "/home/vasya/my_file"; char *local_file = "C:\\my_file";
char *pscp_dir = "C:\\Program\ files";
char *full_parameters = (char *)malloc(640); // 640 байт должно хватить всем
sprintf(full_parameters, "-pw %s %s@%s:%s %s", password, username, host, remote_file, local_file);
ShellExecute(NULL,"open","pscp.exe", full_parameters, pscp_dir, SW_HIDE); Передавать пароль открытым текстом при вызове - плохая идея, поэтому рекомендую аутентификацию по ключам http://the.earth.li/~sgtatham/putty/0.60/h...c/Chapter5.html либо на крайняк на удалённом хосте создать юзера, у которого нет никаких прав кроме как чтение этого файла и логиниться под ним.
--------------------
typedef enum { no, yes, maybe } bool; | блог тут
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|