I faced this issue when working on an Ubuntu 20.04 server.
I was trying to run a sudo
command from a remote machine to deploy an app to the server. However when I run the command I get the error:
sudo: no tty present and no askpass program specified
The remote script failed with exit code 1
Here's how I fixed it:
The issue is caused by executing a sudo
command which tries to request for a password, but sudo
does not have access to a tty
to prompt the user for a passphrase. As it can’t find a tty
, sudo
falls back to an askpass
method but can’t find an askpass
command configured, so the sudo
command fails.
To fix this you need to be able to run sudo
for that specific user with no password requirements. The no password requirements is configured in the /etc/sudoers
file. To configure it run either of the commands below:
sudo nano /etc/sudoers
OR
sudo visudo
Note: This opens the /etc/sudoers
file using your default editor.
Next, Add the following line at the bottom of the file:
# Allow my_user to run all commands without password
my_user ALL=(ALL) NOPASSWD:ALL
Note: Replace my_user
with your actual user
If you want the user to run specific commands you can specify them
# Allow my_user to run specific commands without password
my_user ALL=(ALL) NOPASSWD:/bin/myCommand
OR
# Allow my_user to run specific commands without password
my_user ALL=(ALL) NOPASSWD: /bin/myCommand, /bin/myCommand, /bin/myCommand
Save the changes and exit the file.
For more help, read the resource in this link: sudo: no tty present and no askpass program specified
That's all.
I hope this helps