我正在尝试从笔记本电脑(computer1)连接到主机(remote1)。在computer1上我有user1,在主机上我有另一个用户(user2)。两个系统都运行Debian,remote1系统是Debian Buster的全新安装。
我收到的错误如下:
Unable to connect to libvirt.
End of file while reading data: sh: 1: nc: not found: Input/output error
Verify that the 'libvirtd' daemon is running
on the remote host.
Libvirt URI is: qemu+ssh://[email protected]/system
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/connection.py", line 904, in _do_open
self._backend.open(self._do_creds_password)
File "/usr/share/virt-manager/virtinst/connection.py", line 148, in open
open_flags)
File "/usr/lib/python2.7/dist-packages/libvirt.py", line 105, in openAuth
if ret is None:raise libvirtError('virConnectOpenAuth() failed')
libvirtError: End of file while reading data: sh: 1: nc: not found: Input/output error
我可以使用用户 1 从计算机 1 通过 ssh 连接到远程 1:
user1@computer1:~$ ssh [email protected]
然后系统提示我输入密码。我还尝试使用私钥-公钥设置无密码登录,只需 ssh 即可,但尝试 virt-manager 时出现错误。
我一尝试:
user1@computer1:~$ virt-manager -c 'qemu+ssh://[email protected]/system'
我得到了错误。
由于无论我使用公钥还是密码验证都无所谓(两种情况下都会出现错误),所以我恢复到了密码验证。
在 remote1 上,我仅在 /etc/ssh/sshd_config 中有以下内容:
Port 22
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
在 /var/log/auth.log 中我似乎找不到失败的身份验证。
对于这是什么以及为什么,您有什么想法/建议吗?
End of file while reading data: sh: 1: nc: not found: Input/output error
我是 Linux 和系统管理的新手,所以经过 3 天的尝试和不断的谷歌搜索后,我还是不知所措。
答案1
确保 libvirtd 守护进程确实在运行后,在服务器上安装 nc(netcat)来修复此错误,正如 Kamil 在上面的评论中所推测的那样。
在 Arch Linux 上,我可以选择 gnu-netcat 或 openbsd-netcat,但必须使用 openbsd 版本,因为 gnu 版本显然不支持 virt-manager 似乎需要的“-U”选项。
感谢 Kamil 帮助我解决这个确切的问题!