kmiya-culti / RLogin

RLoginは、Windows上で動作するターミナルソフトです
http://nanno.bf1.jp/softlib/man/rlogin/
MIT License
478 stars 17 forks source link

ローカルプロキシ(SSHのProxyCommand相当)対応について #59

Closed Herbie34 closed 1 year ago

Herbie34 commented 4 years ago

ホームページの「5.16 SSHによる多段接続」でSOCKSを使用した多段接続方法が説明されていますが、SSHのProxyCommandに相当するローカルプロキシを使う方法はないでしょうか。

AmazonのAWS/EC2へSSH接続する際に、ローカルのバックグラウンドで「aws ssm start-session ~」というコマンドを実行することにより、Session Managerという仕組みを経由して接続することができるようになっています。これを使うとAWS/EC2側で外部にSSHポートを開放せずに接続できるので便利です。 https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html PuTTYではプロキシの種類として「ローカル」の選択肢があるため、ローカルプロキシコマンドとして上記を指定することができるようになっていました。

AWSのSession Managerを使いたいというのはかなり限定的な用途かとは思いますが、対応方法があれば教えてください。 ネット上にはconnect.exeを使用した多段SSH接続方法が解説されているサイトがありますが、その場合にも同じような仕組みになるのではないかと思います。(SOCKSで多段接続ができるのでRLoginでそれを使うことはなさそうですが…)

環境情報

kmiya-culti commented 4 years ago

現在のプログラムの構成的には、難しい機能になりますね・・・

かなり前から色々と試しているストリーム的に入出力を自在に構成できるようにすれば、パイプをsshに接続するようなイメージになりますね。これが以外と美しくプログラムが書けないので放置しています・・・うーん

Herbie34 commented 4 years ago

ご回答ありがとうございます。

泥臭い実装をすると拡張性や保守性が失われるのであまり強く要望するつもりはありません。 あとはこの機能がほしいと思っている潜在ユーザーがどれくらいいるかですね…😅

kmiya-culti commented 1 year ago

次回バージョンにプロキシ設定にProxy Commandを指定できるようにする予定です

http://nanno.bf1.jp/softlib/man/rlogin/#HISTORY http://nanno.bf1.jp/softlib/rlogin/2.28.1/

connect.exeでの動作確認は、できましたが Session Managerなどでの動作確認をお願いしたいと思っています

Herbie34 commented 1 year ago

ご対応いただきありがとうございます。 早速試してみたのですが、残念ながら以下のようなエラーが表示されて接続できませんでした。 20230323_212350 20230323_212407

Proxy Commandに設定したコマンドをコマンドプロンプトで直接実行してみたところ、以下のように標準出力に出力されたあとで入出力待ちになる雰囲気でしたので、RLogin側がこの出力を拾ってエラーになってしまっているような気がしましたがいかがでしょうか。 20230323_213316

kmiya-culti commented 1 year ago

早速、お試しいただき有り難うございます。詳細な報告で助かります 修正しましたので再度、お試しいただければ幸いです。

http://nanno.bf1.jp/softlib/rlogin/2.28.1/

Herbie34 commented 1 year ago

早速ご対応いただきありがとうございます!🙇 ひとまずAWSのSession Managerが使えるようになったことを確認しました。🙌 ただ、ちょっと別の問題(?)が見つかったのでご報告です。

An error occurred (InvalidParameters) when calling the StartSession operation: Parameter "portNumber" has value "ssh" not matching "^([1-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$".
kmiya-culti commented 1 year ago

TCPポート入力欄のコンボボックスについて

すべてのコンボボックスを完全一致に変更しようと思います

ホスト鍵の更新確認が毎回表示される

これが問題ですね・・・ 現在は、接続したサーバー名:ポート番号で管理しているのですが 単純にエントリー名で管理すると簡単なんですが、同じエントリーで別サーバーに接続した場合に矛盾が起こります 何か良い方法を考えないといけないですね・・・ メニュー・ヘルプ・登録されたホスト鍵の削除で確認できますが、すごく増殖してると思います

Herbie34 commented 1 year ago

すべてのコンボボックスを完全一致に変更しようと思います

ありがとうございます。😊

これが問題ですね・・・ 現在は、接続したサーバー名:ポート番号で管理しているのですが 単純にエントリー名で管理すると簡単なんですが、同じエントリーで別サーバーに接続した場合に矛盾が起こります 何か良い方法を考えないといけないですね・・・ メニュー・ヘルプ・登録されたホスト鍵の削除で確認できますが、すごく増殖してると思います

正式版RLoginとは別のフォルダに置いて試していたので、登録されたホスト鍵をすべて削除してから何度か接続してみましたが、ホスト鍵の更新確認は毎回表示されるものの、特に「増殖してる」雰囲気はなさそうでしたが…? 一部モザイク処理をさせていただきましたが、ホスト名に設定しているのは i-0~2d なのに、末尾に :0 が付いていたのがちょっと気になるところです。

20230324_112946

kmiya-culti commented 1 year ago

現在作業中の次期試作版にイージーなバグがありました。 MessageBoxの処理で戻り値を無視してしまう部分があり保存処理してなかったです

ホスト名:ポート番号が接続の度に変わらなければ問題ないはずですね・・・失礼しました 色々と問題が見つかり大変助かりました。有り難うございました

Herbie34 commented 1 year ago

何度もご対応いただきありがとうございました。 正式リリースを楽しみにしております。😊