Net::SSH2 is not thread safe.
You might be able to use if from one thread, as far as objects are not shared between threads (and sharing could be just letting a Net::SSH2 object be cloned by creating a new thread even if it is not used there at all, see issue 40).
I (the de-facto current maintainer of Net::SSH2) have looked into that a couple of times, but fixing all the issues involved in order to make the module just usable in a threaded environment would be a mayor effort and the reality is that I lack the time to do it. So, unless somebody volunteers to do it (or offers to fund it!) I don't see it being fixed.