31 lines
680 B
Dart
31 lines
680 B
Dart
import 'dart:convert';
|
|
import 'package:dartssh2/dartssh2.dart';
|
|
import 'package:QuickSSH/classes/ServerCommand.dart';
|
|
|
|
class SSHService {
|
|
static Future<String> execute(ServerCommand server) async {
|
|
try {
|
|
final socket = await SSHSocket.connect(
|
|
server.ip,
|
|
22,
|
|
timeout: const Duration(seconds: 10),
|
|
);
|
|
|
|
final client = SSHClient(
|
|
socket,
|
|
username: server.username,
|
|
onPasswordRequest: () => server.password,
|
|
);
|
|
|
|
final result = await client.run(server.command);
|
|
|
|
client.close();
|
|
await client.done;
|
|
|
|
return utf8.decode(result);
|
|
} catch (e) {
|
|
return "Error: $e";
|
|
}
|
|
}
|
|
}
|