J'essaie de vérifier la version BIOS d'un serveur via SSH, une commande qui nécessite des privilèges root:
ssh remote-server su -c dmidecode
mais cela échoue bien sûr avec l'erreur:
standard doit être un tty
Comment faire pour que ça marche? Je ne peux pas utiliser sudo, et lorsque j'essaye de me connecter en tant que root @ remote-server, il n'acceptera pas le mot de passe que j'utilise pour la commande 'su'. J'utilise RedHat Enterprise Linux 4.
Réponses:
Utilisez
-t
pour forcer ssh à allouer un tty:Vous pouvez également envisager d'autoriser directement root à ssh. Si vous utilisez l'authentification par clé publique, cela peut être plus sûr car vous ne passerez pas de mot de passe. Si vous décidez de le faire, envisagez de bloquer les connexions root depuis n'importe où, à l'exception de vos adresses IP de confiance, en mettant les éléments suivants dans
/etc/security/access.conf
:et assurez-vous qu'il
UsePAM
n'est pas désactivé danssshd_config
la source
-t
s dans votre exemple?Vous ne pouvez pas simplement vous connecter au serveur distant en tant qu'utilisateur standard, puis utiliser sudo ?
Vous pouvez également essayer de citer la commande à exécuter par ssh, comme dans
ou
la source