Tôi có một tập lệnh shell tương tác, tại một nơi cần phải ssh đến một máy khác (dựa trên Ubuntu) và thực thi một cái gì đó bằng root (người dùng nên nhập mật khẩu của mình, nhưng lệnh từ xa sẽ chạy như được ghi chú trong tập lệnh):
# ...
ssh remote-machine 'sudo ls'
# ...
Tuy nhiên, tôi luôn nhận được thông báo lỗi này:
sudo: no tty present and no askpass program specified
OK, điều đó khá rõ ràng. Nhưng làm thế nào tôi có thể phá vỡ điều này? Một cái gì đó như thế này sẽ xảy ra:
$ ssh remote-machine 'sudo ls /'
[sudo] password for user1:
/bin
/etc
/var
ls
đầu ra sẽ chứa các kết thúc \ r \ n chẳng hạn.