SSHAuthAbortError(Connection closed before authentication) when using jumpServer
import 'dart:convert';
import 'package:dartssh2/dartssh2.dart';
void main() async {
final jumpServer = SSHClient(
await SSHSocket.connect('pubnetip on HostA', 22222),
username: 'root',
onPasswordRequest: () => 'xxxxx',
);
print("jumpServer ");
final client = SSHClient(
await jumpServer.forwardLocal('internal ip on HostB', 22),
username: 'root',
onPasswordRequest: () => 'xxxxx',
);
print("client ");
print(utf8.decode(await client.run('hostname')));
print(utf8.decode(await client.run('ifconfig')));
print("client close");
client.close();
jumpServer.close();
}
the code can work sometimes,but it will meet err mosttime
E/flutter (22717): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: SSHAuthAbortError(Connection closed before authentication)
same error ):
After client = SSHClient(...);, try:
try {
// Ensure we are connected and authenticated correctly
await client.ping().catchError((e) => throw e);
} catch (e, s) {
// Handle SSH auth errors here
}
Initially, I had:
try {
// Ensure we are connected and authenticated correctly
await client.authenticated.catchError((e) => throw e);
} catch (e, s) {
// Handle SSH auth errors here
}
but I was experiencing the same SSHAuthAbortError when I did that.
This sends a keep alive to the server, in addition to waiting for authentication to complete.
could check the version of ssh server
this lib checks SSH2 in meta data received from the server, so if the ssh server is 1.x,SSHAuthAbortError(Connection closed before authentication) will occur
try this
final client = SSHClient(
await SSHSocket.connect('localhost', 22),
username: '