Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/32: Рейтинг темы: голосов - 32, средняя оценка - 4.72
artprog06
2 / 2 / 1
Регистрация: 15.10.2011
Сообщений: 51
1

Как из приложения установить соединение SSH (SFTP)

09.11.2011, 14:05. Просмотров 5944. Ответов 5
Метки нет (Все метки)

Добрый день.

Подскажите, как из приложения c# установить соединение SSH (SFTP)?
и произвести запись/забор файла.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2011, 14:05
Ответы с готовыми решениями:

Установить ТСР-соединение с сервером
Здравствуйте!помогите мне,начинающему программисту( необходимо установить TCP...

Не удалось установить SSL-соединение (xNet)
Приветствую форумчане. Юзаю библиотеку xNet для запросов и с недавних пор...

Не удалось установить SSL-соединение с HTTP-сервером
Народ, через браузер сайт загружается нормально, а вот через xNet выдает ошибку...

Не получается установить соединение с БД
Доброго времени суток:) Вообщем почитал FAQ раздела, и решил попробовать...

Не удаётся установить соединение с базой
У меня созданы 2 виртуальные машины. Они пингуются между собой. На 1 я...

5
kolorotur
Эксперт .NET
10499 / 8685 / 2161
Регистрация: 17.09.2011
Сообщений: 14,905
Завершенные тесты: 1
09.11.2011, 14:54 2
Вам нужен именно SFTP (SSH FTP) или FTP через SSH?
Они немного разные.
0
artprog06
2 / 2 / 1
Регистрация: 15.10.2011
Сообщений: 51
09.11.2011, 15:46  [ТС] 3
Цитата Сообщение от kolorotur Посмотреть сообщение
Вам нужен именно SFTP (SSH FTP) или FTP через SSH?
Они немного разные.
Именно SFTP.
нашел немного информации о библиотеке SharpSSH, но с передачей файлов разобраться пока не смог.

Добавлено через 47 минут
Ну "мозги", где же вы?

Вот код, создающий подключение. А какой командой передать файл нигде не могу найти..

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Tamir.SharpSsh;
using Tamir.Streams;
using System.Threading;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            SshShell ssh = new SshShell("ftp.xxx.ru", "login", "parol");
            ssh.Connect(22);
            ssh.WriteLine(@" Xз какая команда
                            ");
            Thread.Sleep(1000);
            dynamic output = ssh.Expect();
            Console.WriteLine(output);
            ssh.Close();
            Console.ReadLine();
        }
    }
}
1
cdmax2002
6 / 6 / 1
Регистрация: 08.09.2011
Сообщений: 36
09.11.2011, 17:05 4
Не оно?:
ИНТЕРАКТИВНЫЕ КОМАНДЫ
Пребывая в интерактивном режиме sftp понимает набор команд, аналогичный командам ftp(1). Команды являются нечувствительными к регистру букв, и имена путей, если они содержат пробелы, могут быть заключены в кавычки.
bye
Выйти из sftp.
cd path
Изменит удаленный каталог к path.
lcd path
Изменит локальный каталог к path.
chgrp grp path
Изменяет идентификатор группы файла path в значение grp. grp должен быть цифровым GID.
chmod mode path
Изменяет права доступа файла path в mode.
chown own path
Изменяет владельца группы файла path в значение own. own должен быть цифровым UID.
exit
Выйти из sftp.
get [flags] remote_path [local_path]
Получает remote_path и сохраняет его на локальной машине. Если имя локального пути не указано, то ему назначается имя, аналогичное имени на удаленной машине. Если указан флаг -P, то будут скопированы полные права доступа и время доступа к файлу.
help
Печатает справочную информацию.
lls [ls-options [path]]
Отображает либо содержимое локального каталога path, либо текущего каталога, если path не указан.
lmkdir path
Создать локальный каталог указанный в path.
ln oldpath newpath
Создать символическую ссылку от oldpath к newpath.
lpwd
Сообщить имя локального рабочего каталога.
ls [flags] [path]
Отображает либо содержимое каталога path на удаленной машине, либо текущего каталога, если путь не указан. Если указан флаг -l, то отображается дополнительная информация, включая права доступа и права владения.
lumask umask
Установить локальную umask в значение umask.
mkdir path
Создать удаленный каталог заданный в path.
progress
Отобразить индикатор прогресса.
put [flags] local-path [remote-path]
Переносит local-path и сохраняет его на удаленной машине. Если имя пути на удаленной машине не указано, то будет назначено тоже-самое имя, как на локальной машине. Если указан флаг -P, то будут скопированы полные права доступа и время доступа к файлу.
pwd
Показать имя удаленного рабочего каталога.
quit
Выйти из sftp.
rename oldpath newpath
Переименовать удаленный файл из oldpath в newpath.
rmdir path
Переместить удаленный каталог указанный в path.
rm путь
Удалить удаленный файл указанный в пути.
symlink oldpath newpath
Создать символическую ссылку из oldpath к newpath.
version
Показать версию sftp-протокола.
! command
Выполнить команду в локальной оболочке.
!
Выйти в локальную оболочку.
?
Синоним для help.
0
artprog06
2 / 2 / 1
Регистрация: 15.10.2011
Сообщений: 51
09.11.2011, 18:45  [ТС] 5
Не вовсем. Среди этих команд копирования файлов к сожалению нет..
0
Barmaleich
1 / 1 / 0
Регистрация: 07.11.2012
Сообщений: 7
12.11.2012, 17:35 6
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
33
 private static void CAICopyFileToServer(string strHost, int nPort, string strUserName, string strPwd)
        {
            SshTransferProtocolBase sshCp;
            sshCp = new Sftp(strHost, strUserName);
 
            sshCp.Password = strPwd;
 
            Console.Write("Connecting...");
            try
            {
                sshCp.Connect(nPort);
            }
            catch (Exception e)
            {
                Console.WriteLine("Не удалось подключиться к " + strHost);
                Console.ReadLine();
            }
            sshCp.Connect(nPort);
            Console.WriteLine("OK");
            Console.WriteLine("coping...");
 
            DirectoryInfo dirInfo = new DirectoryInfo(@"E:\programs\mysql\bin");
 
            foreach (FileInfo file in dirInfo.GetFiles())
            {
                sshCp.Put(file.DirectoryName + "\\" + file.Name, file.Name);
            }
 
            Console.Write("Disconnecting...");
            sshCp.Close();
            Console.WriteLine("OK");
            Console.ReadLine(); 
        }
Копирует все файлы из директории... Нужна библиотека sharpSSH
1
12.11.2012, 17:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2012, 17:35

Установить соединение с sql сервером в VB
Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs) Dim DBConn as...

Установить соединение с БД Firebird, расположенной на сервере
Добрый вечер Ребят!я совсем не опытный новичек!Помогите пожалуйста с...

Закрыть доступ не только по ssh, но и по sftp
Здравствуйте, вопрос по ssh авторизации. Сделал авторизацию по ключам, но...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru