0
如果我運行的某些主機下面的腳本:從sudo的命令刪除冗長的僞終端
ssh -t myhost /usr/bin/sudo /bin/bash <<'HERE_DOCUMENT'
whoami
uptime
exit
HERE_DOCUMENT
我得到以下輸出:
Pseudo-terminal will not be allocated because stdin is not a terminal.
sudo: sorry, you must have a tty to run sudo
爲須藤設置啓用requiretty
。我不想改變這個設置。
所以我從existing StackOverflow answer的修復是添加-tt選項到ssh。
ssh -tt myhost /usr/bin/sudo /bin/bash <<'HERE_DOCUMENT'
whoami
uptime
exit
HERE_DOCUMENT
但是,創建另一個問題,輸出變得太冗長:
[[email protected] ec2-user]# whoami
root
[[email protected] ec2-user]# uptime
03:44:29 up 2 days, 3:26, 2 users, load average: 0.00, 0.01, 0.05
[[email protected] ec2-user]# exit
exit
Connection to myhost closed.
什麼是去除提示和命令呼應的最佳方式?
這些命令只是示例,我確實需要使用sudo訪問來運行特權命令。
既然你有'sudo'訪問,也許你可以在你的公鑰添加到'〜根/的.ssh /授權keys',然後做'SSH根@ myhost的/ bin/bash
您應該將其作爲答案發布。這可以幫助其他人。在我的情況下,我想盡量減少對遠程系統的任何更改。根並不總是被允許直接SSH到主機。 – dabest1