Example #1
0
        public ISshSession Create(RouterCredentials credentials)
        {
            var sshClient = new Renci.SshNet.SshClient(credentials.Host, credentials.User, credentials.Password);

            sshClient.Connect();
            return(new SshSession(sshClient, credentials.User));
        }
Example #2
0
        private static async Task <int> Main(string[] args)
        {
            try
            {
                if (args.Length > 0)
                {
                    LoadConfigIntoEnvironment(args[0]);
                }
                var BOT_ACCESS_TOKEN        = ReadEnvVarOnce("BOT_ACCESS_TOKEN");
                var BOT_AUTHORIZED_USERS    = ReadEnvVarOnce("BOT_AUTHORIZED_USERS");
                var BOT_ROUTER_HOSTNAME     = ReadEnvVarOnce("BOT_ROUTER_HOSTNAME");
                var BOT_ROUTER_SSH_USERNAME = ReadEnvVarOnce("BOT_ROUTER_SSH_USERNAME");
                var BOT_ROUTER_SSH_PASSWORD = ReadEnvVarOnce("BOT_ROUTER_SSH_PASSWORD");

                var botClient         = new TelegramBotClient(BOT_ACCESS_TOKEN);
                var authenticator     = SimpleAuthenticator.Parse(BOT_AUTHORIZED_USERS);
                var routerCredentials = new RouterCredentials(BOT_ROUTER_HOSTNAME, BOT_ROUTER_SSH_USERNAME, BOT_ROUTER_SSH_PASSWORD);
                var sshSessionFactory = new RenciSshNetSessionFactory();
                var routerManager     = new RouterManager(sshSessionFactory, routerCredentials);
                var server            = new TelegramBotServer(botClient, authenticator, routerManager);
                await server.RunAsync().ConfigureAwait(false);

                return(0);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e);
                return(-1);
            }
        }