Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!

Простая задача раздать SSH на сокс, SSH уже реализован C# Console APP

project expired


Все что мне требуется это что бы вы скачали библиотеку Renci.SshNet по этой ссылке  https://sshnet.codeplex.com/releases/view/120565

Скачивать нужно SshNet .NET 4.0 Binary Эту библиотеку добавить как ссылку для проекта, я работаю в мшыгфд 2013, по этому будет отлично если исходник будет в этой же среде.

Вам нужно обычное консольное C# приложение.

Как видите SSH с ключем и прочими вещами у меня реализован, вам остается сделать после порта форвардинг раздачу на сокс с авторизацией по логину и паролю т.е. сокс5 протокол

Сейчас у меня запуск ssh происходит 

SSH client = new SSH("50.247.55.153", 22, "admin", "123123"); как видите здесь только SSH логин и пароль, также сюда нужно добавить порт на который мы хотим раздать сокс, а также логин и пароль и что бы это запускалось в новом потоке, как с потоками работать я полагаю вы и без меня знаете и сделаете. Строка запуска нового SSH должна выглядеть после вашнй работы так SSH("50.247.55.153", 22, "admin", "123123", "SOCKS5_PORT", "SOCKS5_LOGIN", "SOCKS5_PASS");

Задача простая, по этому и плачу соответственно. Если этот SSH будет занят исполнителю выдам новый. Реализовать нужно быстро, сегодня все должно работать! Оплата WMZ

А вот и сам скрипт


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Net.Sockets;

using System.IO;

using System.Net;

using System.Text.RegularExpressions;

using System.Threading;

using Renci.SshNet;

using Renci.SshNet.Common;



namespace ProxyEasyWithThreads

{

 public class SSH

 {

 string servername;

 int port;

 string username;

 string password;


 SshClient Server = null;



 public SSH(string servername, int port, string username, string password)

 {

 this.servername = servername;

 this.port = port;

 this.username = username;

 this.password = password;


 this.ssh_sess();

 }



 private void ssh_sess()

 {

 KeyboardInteractiveAuthenticationMethod kauth = new KeyboardInteractiveAuthenticationMethod(this.username);

 PasswordAuthenticationMethod pauth = new PasswordAuthenticationMethod(this.username, this.password);

 kauth.AuthenticationPrompt += new EventHandler<AuthenticationPromptEventArgs>(HandleKeyEvent);

 this.Server = new SshClient(new ConnectionInfo(this.servername, this.port, this.username, pauth, kauth));

 Console.WriteLine("Connected");

 try

 {

 Console.WriteLine("Start connection");

 Server.Connect();

 Console.WriteLine("Connected");

 if (Server.IsConnected)

 {

 try

 {

 ForwardedPortDynamic prt;

 prt = new ForwardedPortDynamic("127.0.0.1", 1080);

 Server.AddForwardedPort(prt);

 prt.Start();

 Console.WriteLine("Port forwarding start");

 }

 catch (Exception ex)

 {

 Console.WriteLine(ex.Message.ToString());

 }

 }


 }

 catch (Exception e)

 {

 Console.WriteLine(e.Message.ToString());

 }

 }



 void HandleKeyEvent(Object sender, AuthenticationPromptEventArgs e)

 {

 foreach (AuthenticationPrompt prompt in e.Prompts)

 {

 if (prompt.Request.IndexOf("Password:", StringComparison.InvariantCultureIgnoreCase) != -1)

 {

 prompt.Response = this.password;

 }

 }

 }


 static void Main()

 {

 SSH client = new SSH("50.247.55.153", 22, "admin", "123123");

 Console.ReadLine();

 }

 }

}


Make a proposal!

The client doesn't want to make prepayment? Offer him to make a payment via Safe to avoid possible fraud.

  1. 2 days200 $
    Микола Ф.
     1970  verified   50   1

    Здравствуйте!
    Выполню Вашу задачу!
    Свяжитесь со мной:

    Ukraine Kyiv | 1 January 2016 |

Client
Project published
29 December 2015
316 views
Payment methods
Labels
Share