C language executes exevp (ssh,.) after child thread setsid () How not to open ssh-askpass automatically

problem description

execute execvp (arglist [0], arglist); after the child thread setsid () in C language. Prompt

if ssh-askpass is not installed
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
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.
ssh-askpass

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);
    }
}
Jun.21,2021
Menu