Простая задача раздать SSH на сокс, SSH уже реализован C# Console APP
Все что мне требуется это что бы вы скачали библиотеку 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();
}
}
}
-
2 дня8985 UAH
967 57 0 2 дня8985 UAHЗдравствуйте!
Выполню Вашу задачу!
Свяжитесь со мной:
Актуальные фриланс-проекты в категории C#
Сравнительный анализ эффективности кастомного ПО (v2.2-field) и эталонного ПО (Meshtastic v2.x)
1000 UAH
Сравнительный анализ эффективности кастомного ПО (v2.2-field) и эталонного ПО (Meshtastic v2.x) на идентичной аппаратной платформе (ESP32 + SX1268, 2W) по критериям дальности, пропускной способности, стабильности линка и энергопотребления. Провести тесты с замерами с учетом… C и C++, C# ∙ 2 дня 14 часов назад ∙ 2 ставки |
Создание плагина для интеграции с POS-системой Syrve, C#Разработать плагин для POS-системы Syrve (on-premise), который устанавливается на сервер заведения. Плагин должен: (1) передавать на наш сервер данные в режиме реального времени — заказы, статусы столов, платежи, чеки; (2) принимать команды от Reservble — подтверждения… C#, Веб-программирование ∙ 5 дней 10 часов назад ∙ 14 ставок |
Добробка в существующей версии 1с розница блока для РЦ(распределительного центра)В общем поясню, что у нас за база - есть общий сервер, где есть база Розница (где ставятся все приходы) - база УТП, куда переливаются все продажи - считается наценка, остатки по складам - маленькие базы розничных магазинов. По обменам у нас магазины обмениваются с базой Розница… C и C++, C# ∙ 13 дней 2 часа назад ∙ 6 ставок |