2017-10-19 15 views
0

でのsudoから冗長性を除去します。私はその設定を変更したくありません。は、私はいくつかのホスト上で次のスクリプトを実行した場合は疑似端末

existing StackOverflow answerから私の修正は、sshに-ttオプションを追加することです。

ssh -tt myhost /usr/bin/sudo /bin/bash <<'HERE_DOCUMENT' 
whoami 
uptime 
exit 
HERE_DOCUMENT 

しかし、それは別の問題を作成し、出力があまりにも冗長になり:

[[email protected] ec2-user]# whoami 
root 
[[email protected] ec2-user]# uptime 
03:44:29 up 2 days, 3:26, 2 users, load average: 0.00, 0.01, 0.05 
[[email protected] ec2-user]# exit 
exit 
Connection to myhost closed. 

エコープロンプトとコマンドを削除するための最良の方法は何ですか?
コマンドは単なる例であり、特権コマンドを実行するにはsudoアクセスが必要です。

+0

あなたは 'sudo'アクセス権を持っているので、おそらくあなたは、その後、' sshのルート@ myhostの操作を行い、〜ルート/の.ssh /認可keys' 'へあなたの公開鍵を追加することができます/ bin/bash

+0

回答として投稿する必要があります。これは他人を助けることができる。私の場合は、リモートシステムへの変更を最小限に抑えたいと思っています。ルートが常にホストに直接SSHできるとは限りません。 – dabest1

答えて

1

対話型シェルセッションが必要ない場合は、tty上で対話型シェルを起動しないでください。ただ、非対話あなたのコマンドを実行するシェルを起動します。

ssh -tt host "sudo bash -c ' 
    whoami 
    uptime 
    '" 
関連する問題