sshでsu -cを実行します。


10

SSHを介してサーバーのBIOSバージョンを確認しようとしています。これはroot権限が必要なコマンドです。

ssh remote-server su -c dmidecode

しかし、これはもちろんエラーで失敗します:

標準入力はttyでなければなりません

これを機能させるにはどうすればよいですか?sudoを使用できません。root@ remote-serverとしてログインしようとすると、suコマンドで使用するパスワードが受け入れられません。RedHat Enterprise Linux 4を使用しています。


「su -c」の代わりにsudoを使用することを検討することもお勧めします
wfaulk

1
私は「私はsudoを使用することはできません」指定されている
アーロン

「sudoを使用できない」がなぜだったのかについて、もっと詳しい情報があったらいいと思います。
dannysauer 2016年

@dannysauerすべてのOSが持っているわけではありません。私はここで同じ問題を解決しようとしていますが、OPのようなRedHatではありません。私はsudoのないUNIXバリアントを使用しています。OPがRedHatでOPを使用できない理由について知りたいのですが、とにかく質問が出されたことに感謝しています。
Loduwijk

sudoは、私がよく知っているすべてのUNIXバリアントに基づいて構築されていますが、それらすべてにインストール(または構成)されていないことに同意します。なぜそこに設定されていないのか、私は本当にもっと興味深かったです。:D
dannysauer

回答:


13

-tsshにttyを割り当てるように強制するために使用します。

ssh -t -t remote-user su -c dmidecode

rootに直接sshを許可することも検討してください。公開鍵認証を使用している場合、パスワードを渡さないため、これはより安全です。これを行うことにした場合は、以下をに入れて、信頼できるIPアドレス以外の場所からのrootログインをブロックすることを検討してください/etc/security/access.conf

+ : root : 10.20.30.40
- : root : ALL EXCEPT LOCAL

UsePAM無効になっていないことを確認してくださいsshd_config


2
-t例に2つのを含めた理由は何ですか?
wfaulk

2
マニュアルページによると、複数の-tオプションは「sshにローカルttyがない場合でもtty割り当てを強制する」
Heath

これは、Fedoraでは機能しません。これにより、スクリプトでパスワードの入力を求められますが、パスワードはプレーンテキストで表示され、Enterキーを押すとハングします。
Cerin

@クリスは別の問題です。新しい質問をしてみてください。
ジオカー'13年

Centosで動作するdouble-tに関するコメントを@Heathにありがとう
Paul Sheldrake

0

リモートサーバーに標準ユーザーとしてログインし、sudoを使用することはできませんか?

次のように、sshによって実行されるコマンドを引用することもできます。

ssh remote-server 'su -c dmidecode'

または

ssh remote-server "su -c dmidecode"

3
-1は、コマンドを引用しても、ターミナルがないことを解決できないからです。sudoを提案するための+1。ウォッシュです。
wfaulk

「sudoは使用できません」と指定した
とおり
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.