私は、コマンドラインを使用するにはあまりにも恐れているユーザーのグループのSSHトンネルを生成および監視するためのGUIプログラムを作成しています。
残念ながら、問題のサーバーは非常に厳格です。RSA SecurIDトークンを介した2要素認証は、SSH接続を開くための唯一の公式に承認された方法です。パスワードなしのRSA公開/秘密鍵認証は許可されていません。
したがって、私のプログラムでは、テキスト入力ボックスからパスワードを読み取り、それを子SSHプロセスに送信する必要があります。残念ながら、ssh
パスワードが実際のキーボードからのみ取得されるようにするには、かなりの時間がかかります。
サードパーティのモジュールは使用しないことを強くお勧めします。私はparamikoとpexpect(どちらも同様の問題の可能な解決策として提案されています)を知っていますが、ソースからPythonモジュールをインストールする方法をユーザーに説明しようとするのは非常に頭痛の種です。
だから:標準のPythonモジュールのみを使用してsshサブプロセスにパスワードを送信するにはどうすればよいですか?subprocess
サブプロセスをだまして、TTYを使用していると思わせる方法はありますか?SSH_ASKPASSを使用してプログラムから読み取ることはできますか?
他の標準ライブラリモジュール(たとえば、モジュールを使用した低レベルのコマンドos
)も許可されます。