Gelöst: Stellen Sie sicher, dass libnss-mdns installiert ist!
Ich habe Probleme mit der Verwendung von SSH von meinem Netbook auf meinen Desktop unter Verwendung eines lokalen Hostnamens. Ab und zu muss ich den von mir verwendeten Router zurücksetzen, wodurch die Adressen zurückgesetzt werden, die er an meine Geräte weitergibt. Vor einiger Zeit habe ich Avahi eingerichtet, um dies zu umgehen *. Die Datei /etc/avahi/services/ssh.service ist die Standarddatei, die aus der Dokumentation kopiert wurde:
<?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>
Früher funktionierte das einwandfrei, aber jetzt, wenn ich versuche, von meinem Netbook auf meinen Desktop zu ssh, wird die folgende Fehlermeldung angezeigt (Hinweis: Ich habe den Hostnamen meines PCs in dieser Ausgabe geändert):
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
Ich kann von meinem Netbook auf meinen PC ssh, wenn ich die IP-Adresse manuell eingebe und / etc / hosts richtig eingerichtet habe (damit der Daemon auf meinem PC einwandfrei funktioniert), funktioniert er nur dann nicht mehr, wenn ich es versuche Verwenden Sie die lokale Adresse. SSH'ing in die andere Richtung (PC-> Netbook) funktioniert einwandfrei, auch wenn ein lokaler Hostname verwendet wird. Avahi scheint auch gut zu funktionieren:
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
Auf dem Netbook wird Lubuntu 13.10 ausgeführt. Beachten Sie, dass ich kürzlich zu Lubuntu gewechselt bin, und ich erinnere mich nur, dass ich diesen Fehler bei Lubuntu und nicht bei einfachem Ubuntu gesehen habe. Auf meinem Desktop läuft Ubuntu 13.10.
Jede Hilfe wäre dankbar!
* Ich bin mir bewusst, dass mein Router so eingerichtet werden kann, dass beiden Geräten dauerhaft festgelegte Adressen zugewiesen werden, und ich werde dies tun, wenn ich dieses Problem nicht beheben kann, aber ich würde es vorziehen, dies zu beheben, anstatt es zu umgehen.
ETA: Das Pingen des PCs vom Netbook mit dem lokalen Hostnamen funktioniert nicht (unbekannter Host).
Edit 2: Inhalt von /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
zeigt auch, dass ssh den avahi-daemon mit der Auflösungsanforderung kontaktiert, die eine Zeitüberschreitung aufweist. foo
In meinem Fall wurde Folgendes geändert /etc/nsswitch.conf
: Von " hosts: files mdns4_minimal [NOTFOUND=return] dns
" bis " hosts: files dns mdns4_minimal
". Ich bin mir nicht sicher, warum der Avahi-Daemon KEINE DNS-Server fragen soll. Möglicherweise hat er etwas mit der Inkompatibilität zwischen Multicast-DNS und DNS im LAN zu tun (siehe auch: .local TLD ... .local
ist sowieso eine schlechte Praxis)
ssh user@hostname:/folder
?