次の行は、Red Hat 5.5で利用可能なコンストラクタを示しています。
$ echo "foo" | ssh myhost "echo \"cat <&1\" | su --login"
foo
実際、私はcatがFD#1を読むことができる理由をまったく理解していませんでしたが、うまくいきます。
Red Hat 6.3はもう機能しません。
$ echo "foo" | ssh myhost "echo \"cat <&1\" | su --login"
cat: -: Bad file descriptor
最初の質問:なぜこれがもう機能しないのですか? 2番目の質問:Red Hat 6.3で動作するソリューションを知っている人はいますか?
すべてのアイデアを高く評価します。
アルミン
答え1
ps
しばらく、デフォルトでmyhostにsshを送信してからパスワードを求めるプロンプトを表示せずに、rootとしてすぐにsuを試みます。それでは、ローカルコンピュータとリモートコンピュータの誰もが見ることができるように、出力にルートパスワードを入力する副作用がありますか?
うん、そうではありません。
どこでも動作し、ルートパスワードの漏洩を排除する3つの方法があります(私が好む順序で)。
- root@myhostでSSH経由でアクセスしてください。パスワードプロンプトを避けるには、公開鍵認証を使用してください。秘密鍵を暗号化するのが最善です(ただし、パスワードプロンプトを減らすには、SSHエージェントおよび/または接続の多重化を使用してください)。 root
PermitRootLogin yes
または公開鍵でのみログインを許可するようにsshを設定できますPermitRootLogin without-password
。 sudo -i
今のようにSSHを使用しますが、root以外のユーザーがrootとしてすべてのコマンドを実行できるようにしてsu --login
sudoを設定しますvisudo
(パスワードなしで可能ですが、セキュリティの観点からはroot以外のユーザーはrootと同じです)。su
非ユーザーにパスワードの入力を求められないように、PAM設定を変更してください。セキュリティの観点から、ユーザーはルートと同じです。