SSHを介してサーバーのBIOSバージョンを確認しようとしています。これは、root権限が必要なコマンドです。
ssh remote-server su -c dmidecode
しかし、これはもちろんエラーで失敗します:
標準はttyでなければなりません
これを機能させるにはどうすればよいですか? Sudoを使用できません。root@ remote-serverとしてログインしようとすると、「su」コマンドで使用するパスワードが受け入れられません。 RedHat Enterprise Linux 4を使用しています。
-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
UsePAM
がsshd_config
で無効になっていないことを確認してください
標準ユーザーとしてリモートサーバーにログインしてからSudoを使用することはできませんか?
次のように、sshによって実行されるコマンドを引用することもできます。
ssh remote-server 'su -c dmidecode'
または
ssh remote-server "su -c dmidecode"