Se você passar um comando nos argumentos ssh
será executado de forma não interativa;
$ ssh -t user@localhost echo foo
user@localhost's password:
foo
Connection to localhost closed.
Uma solução é substituir o shell não interativo por um shell interativo no comando passado para ssh
:
$ ssh -t user@localhost 'echo foo; exec zsh'
user@localhost's password:
foo
%
No seu caso, para substituir o shell não interativo, por exemplo com uma instância interativa do Bash:
import os
os.system("xterm -e ssh -tt -i key.pem -o StrictHostKeyChecking=no ubuntu@ip_address 'yRouter/src/yrouter --interactive=1 user; exec bash'")