同じインターフェイスでSSHとTelnetの両方にアクセスできるC#ライブラリを探しています。何が良い選択でしょうか?
SSHスタックには Granados をお勧めします。多くの製品に使用されています。
私はこれをお勧めします コードプロジェクトページ telnetスタック用。
Poderosaターミナルエミュレータ もダウンロードできます。 SSHスタックとしてGranadosを使用しており、独自のtelnetスタックの実装があります。
Poderosaは非常にプラグイン可能です。これは、ネットワークスタック上に優れた抽象化レイヤーを提供します。独自の統合インターフェースを作成する時間がない場合は、実際に彼らの作業を確認する必要があります。それはあなたが望むもののように同じインターフェースの下でSSHとTelnetの両方へのアクセスを提供します。残念ながら、それは日本のエンジニアによって書かれています。インラインコメントはすべて日本語で書かれています。コードを理解するのに時間がかかる場合があります。
ターミナルエミュレーションライブラリもチェックしてみてください。リモート端末から返されるデータを処理するため、ほとんどの端末は、デバイス制御コマンド、フォントの色/スタイル、またはカーソル移動コマンドに対して エスケープ文字シーケンス を返します。
単純なコマンド「ls-al」でも、返されるコンテンツにエスケープ文字シーケンスが含まれていることに気付かない場合があります。これらのエスケープシーケンスは、ディレクトリ名とファイル名を異なる色で表示するためのものです。
繰り返しになりますが、ターミナルエミュレーションの場合、私が見つけることができる最高のC#ライブラリはPoderosaです。 C#ライブラリを使用する必要がない場合は、 PuTTY が最高のターミナルエミュレーションサポートを備えています。これまでに見たほとんどすべてのエスケープ文字シーケンスを認識できます。
PoderosaとGranadosをご覧になることを強くお勧めしますが、これらのプロジェクトは現在アクティブではないように思われることに注意してください。まあ..それでも、それはまだ私が見た中で最高です。
SSHをC#で機能させることは確かに非常にトリッキーであり、ほとんどの実装はバグがあるか遅すぎます。 SmarTTY を作成していたとき、SharpSSHとSSH.Netに何度も苦労し、最終的にlibssh2の周りに独自のC#ラッパーを作成することにしました。
SmarTTYはオープンソースではありませんが、プロジェクトでSSHライブラリを使用したい場合は、遠慮なく私にメールを送ってください。そのようなライブラリの需要が大きい場合は、別の製品としてリリースする可能性があります。
このリンクはあなたを助けるかもしれません C#Telnet Library
Telnetとsshの両方に同一の(または同様のAPI)を提供するものは見つかりませんでした。 sharpSSH はSSHをうまく抽象化する小さなライブラリです。