problem description
execute execvp (arglist [0], arglist); after the child thread setsid () in C language. Prompt
if ssh-askpass is not installedssh_askpass: exec(/usr/libexec/openssh/ssh-askpass): No such file or directory
Permission denied, please try again.
ssh_askpass: exec(/usr/libexec/openssh/ssh-askpass): No such file or directory
Permission denied, please try again.
ssh_askpass: exec(/usr/libexec/openssh/ssh-askpass): No such file or directory
root@192.168.1.1: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). if installed, ssh-askpass, will automatically start to ask for a password. 
  
 
how can I enter the ssh password on the command line instead of starting ssh-askpass,? And comment out setsid (); and you will find that ssh-askpass will not be started.
Environment
 system version Fedora 28 
 openssh version OpenSSH_7.8p1, OpenSSL 1.1.0h-fips 27 Mar 2018 
related codes
int main() {
    int pid;
    if ((pid = fork()) == 0) {
        printf("child");
        setsid();
        execlp("ssh", "ssh", "192.168.1.1", NULL);
    }
}