解决:确保已安装libnss-mdns!
我无法使用.local主机名在从上网本到桌面的SSH中使用SSH。每隔一段时间,我必须重置我使用的路由器,这会重置它分配给我的设备的地址,因此不久前,我设置了Avahi来解决这个问题。/etc/avahi/services/ssh.service文件是从文档中复制的标准文件:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<!-- See avahi.service(5) for more information about this configuration file -->
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_ssh._tcp</type>
<port>22</port>
</service>
</service-group>
这曾经可以正常工作,但是现在由于某种原因,当我尝试从上网本ssh切换到桌面时,收到以下错误消息(请注意,我在此输出中更改了PC的主机名):
user@netbook>> ssh pc.local -vvv
OpenSSH_6.2p2 Ubuntu-6ubuntu0.3, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /home/username/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
ssh: Could not resolve hostname pc.local: Name or service not known
当我手动输入IP地址,并且正确设置了/ etc / hosts(因此PC上的守护程序运行正常)时,我可以将笔记本电脑从ssh切换到PC。使用.local地址。即使使用.local主机名,也可以在其他方向(PC-> netbook)上使用SSH正常运行。Avahi看起来也不错:
user@netbook>> avahi-browse -a -t+
+ wlan0 IPv6 netbook SSH Remote Terminal local
+ wlan0 IPv6 netbook [<MAC address>] Workstation local
+ wlan0 IPv6 netbook Remote Disk Management local
+ wlan0 IPv4 netbook SSH Remote Terminal local
+ wlan0 IPv4 netbook [<MAC address>] Workstation local
+ wlan0 IPv4 netbook Remote Disk Management local
+ wlan0 IPv4 pc SSH Remote Terminal local
+ wlan0 IPv4 pc [<MAC address>] Workstation local
+ wlan0 IPv4 pc Remote Disk Management local
+ wlan0 IPv6 pc SSH Remote Terminal local
+ wlan0 IPv6 pc [<MAC address>] Workstation local
+ wlan0 IPv6 pc Remote Disk Management local
上网本正在运行Lubuntu 13.10;请注意,我最近确实更改了Lubuntu,我只记得在Lubuntu而不是在普通的Ubuntu上看到此错误。我的桌面正在运行Ubuntu 13.10。
任何帮助,将不胜感激!
*我知道可以将路由器设置为永久为这两个设备提供设置的地址,如果无法解决此问题,我会这样做,但是我宁愿尝试解决此问题,而不是解决该问题。
ETA:使用.local主机名从上网本Ping PC无效(未知主机)。
编辑2:内容 /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
hosts: files mdns4_minimal dns [NOTFOUND=return] mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
ping pc.local
吗?
strace ssh user@foo
还将显示ssh与avahi-daemon联系解决请求,该请求foo
超时...在我的情况下,更改为/etc/nsswitch.conf
:从“ hosts: files mdns4_minimal [NOTFOUND=return] dns
” 更改为“ hosts: files dns mdns4_minimal
”。不知道为什么avahi守护程序不应该询问DNS服务器,它可能必须对LAN上的多播DNS和DNS之间的不兼容进行某些操作(另请参阅:.local TLD ... .local
仍然是不好的做法)
ssh user@hostname:/folder
吗?