On 5/15/26 14:19, Richard W.M. Jones wrote:
On Fri, May 15, 2026 at 01:05:30PM +0200, Michal Privoznik via Devel wrote:
See 3/3 for in depth explanation. After this, there's still one problem - the ssh transport (tcp+ssh://...) because virNetSocketNewConnectSSH() does not really ask for virConnectAuthCallbackPtr. There should be a way to fix it though: from bash script parse URI and append ?no_tty=1 at the end of URI. This directs virNetSocketNewConnectSSH() to execute SSH binary with BatchMode=yes which is documented to suppress keyboard interaction.
If we find this ^^ needed I can try to write a patch. But for now, let's fix other transports.
Michal Prívozník (3): virnetsshsession: Don't check for auth callbacks in virNetSSHAuthenticatePassword() virnetlibsshsession: Check later for auth callback in virNetLibsshAuthenticatePassword() virsh: Provide no auth callbacks for bash completer
src/rpc/virnetlibsshsession.c | 14 +++++++------- src/rpc/virnetsshsession.c | 7 ------- tools/virsh.c | 10 +++++++++- 3 files changed, 16 insertions(+), 15 deletions(-)
I tested the series. I had to use 'build/run bash' to set shell variables so that the virsh subcommand would use the patched version.
The bash completion script is written in such way that it should execute ARGV[0]. So in fact all that's needed is: cd build; ./tools/virsh -c esx://... <TAB><TAB>
I also strace'd that bash so I could be doubly sure it was running the 'virsh complete' subcommand:
2600499 execve("/home/rjones/d/libvirt/build/tools/virsh", ["virsh", "-q", "-c", "esx://root@[redacted]"..., "complete", "--", ""], 0x561fdfcd7000 /* 80 vars */) = 0
Anyhow it fixes the issue I was having, so:
Tested-by: Richrad W.M. Jones <rjones@redhat.com>
Thanks for testing! Michal