suでコマンドを実行する

suでコマンドを実行する

このコマンドをで実行していますsu。 sshNetを使用して接続を確立してからSSHコマンドを設定しようとすると、su -応答はありません。ログイン後に実行したいパスワードとコマンドがありますsu

私が知っている私のコードは次のようになります。

using (var sshClient = new SshClient("10.10.8.113","ems", "ems"))
{
    sshClient.Connect();
    sshClient.CreateCommand("su -").Execute();
    sshClient.CreateCommand("123456").Execute();
    sshClient.CreateCommand("EmsMenu.sh");
}

Shell実装の使用について読みましたが、そのようには成功しませんでした。

ベストアンサー1

この失敗の原因は、デフォルトでターゲットマシンにssh端末(a)が生成されないためです。これは、パスワードの入力を求められないため、失敗することをpty意味します。su(同じ理由で@Scottが指摘したように、sudoフラグが指定されていないとメッセージを表示することもできません。)-S

  1. リモートシステムに端末()を作成して、sshパスワードの入力を求めるように指示できます。一般的なコマンドを使用すると、sshにフラグを指定してこれを実行できます。残念ながら、これを行うのに役立ちません。ptysu-tSSH.NET文書はCHM形式で提供されているため、開けません。

  2. su目的のターゲットユーザーアカウント「root」を使用してリモートサーバーに接続すると、このセクションを完全に削除できます。セキュリティ上の理由から、パスワードを使用したルートログインの試行を拒否する一部のシステムでは、この操作が失敗する可能性があるため、証明書ベースのログインを確認することをお勧めします。コマンドを使用して適切な証明書を生成できますssh-keygen -t rsa

おすすめ記事