web-dev-qa-db-ja.com

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

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

ssh remote-server su -c dmidecode

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

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

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

10
aaron

-tを使用して、sshにttyの割り当てを強制します。

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

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

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

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

13
geocar

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

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

ssh remote-server 'su -c dmidecode'

または

ssh remote-server "su -c dmidecode"
0
Massimo