During the work with a customer, discovered that .NET core doesn't contain SSH which was crucial for the development of the engagement. Using a 3rd party NuGet package (known as SSH.NET) was the workaround, which unfortunately is not well maintained and supported, which brings the following issues:
- Security:
Lack of more/new secure encryption algorithms given the fact the github repository lacks continuous support.
- Asynchronous support:
Current package is implemented using AMP (Asynchronous Programming Model), which is the legacy asynchronous implementation, compared to what most recent versions of dotnet .NET that supports – TAP (Task-based Asynchronous Pattern), which is what was used by customer.
- Lack of Documentation:
It required to spend good amount of time reading SSH.NET repository, on how the package was implemented, look at some tests how those were written to have a good idea on how to consume the SSH client provided by the package.
it is very common to find SSH as a standard mechanism to communicate between services across different platform, which brings the issue here whether this should be considered as workable item.
During the work with a customer, discovered that .NET core doesn't contain SSH which was crucial for the development of the engagement. Using a 3rd party NuGet package (known as SSH.NET) was the workaround, which unfortunately is not well maintained and supported, which brings the following issues:
Lack of more/new secure encryption algorithms given the fact the github repository lacks continuous support.
Current package is implemented using AMP (Asynchronous Programming Model), which is the legacy asynchronous implementation, compared to what most recent versions of dotnet .NET that supports – TAP (Task-based Asynchronous Pattern), which is what was used by customer.
It required to spend good amount of time reading SSH.NET repository, on how the package was implemented, look at some tests how those were written to have a good idea on how to consume the SSH client provided by the package.
it is very common to find SSH as a standard mechanism to communicate between services across different platform, which brings the issue here whether this should be considered as workable item.