SSH к машине с Ubuntu, используя avahi
У меня есть Ubuntu Box, к которому я подключаюсь с помощью Avahi. Подключение к этому блоку работает нормально для всех служб (я регулярно использую AFP, SSH и SMB на нем), но я заметил, что всякий раз, когда я подключаюсь к нему с Mac, используя SSH (и используя имя ".local", предоставленное avahi - например ssh <servername>.local
) SSH пытается подключиться с помощью ipv6, который по какой-то причине истекает (через две минуты), а затем пытается ipv4, который подключается немедленно.
Я хотел бы избежать этого тайм-аута, так как он действительно раздражает меня и других пользователей - если SSH сначала попробует ipv4 или если ssh поверх ipv6 сработает, то это решит проблему. Но до сих пор я не смог заставить ни работать (лучшее, что мне удалось, это указать -4
вариант SSH, чтобы остановить его от попытки ipv6 на всех).
Я использую Ubuntu 10.04. Любое решение должно быть на сервере (а не на клиенте), так как подключается несколько клиентов. Возможное осложнение может заключаться в том, что моя локальная сеть настроена на разрешение только локальных адресов ipv6, но у меня есть другие серверы (использующие Mac OS), которые я могу использовать SSH для использования ipv6)
Я подозреваю, что проблему можно решить, либо запретив avahi транслировать адрес ipv6, либо включив ssh через ipv6, но, насколько я могу судить, avahi уже настроен не транслировать адрес ipv6, а sshd настроен для разрешения соединений ipv6.!
Вот мой /etc/avahi/avahi-daemon.conf
(Я не думаю, что я что-то изменил по умолчанию в Ubuntu)
[server]
#host-name=foo
#domain-name=local
#browse-domains=0pointer.de, zeroconf.org
use-ipv4=yes
use-ipv6=no
#allow-interfaces=eth0
#deny-interfaces=eth1
#check-response-ttl=no
#use-iff-running=no
#enable-dbus=yes
#disallow-other-stacks=no
#allow-point-to-point=no
[wide-area]
enable-wide-area=yes
[publish]
#disable-publishing=no
#disable-user-service-publishing=no
#add-service-cookie=no
#publish-addresses=yes
#publish-hinfo=yes
#publish-workstation=yes
#publish-domain=yes
#publish-dns-servers=192.168.50.1, 192.168.50.2
#publish-resolv-conf-dns-servers=yes
#publish-aaaa-on-ipv4=yes
#publish-a-on-ipv6=no
[reflector]
#enable-reflector=no
#reflect-ipv=no
[rlimits]
#rlimit-as=
rlimit-core=0
rlimit-data=4194304
rlimit-fsize=0
rlimit-nofile=300
rlimit-stack=4194304
rlimit-nproc=3
и вот мой sshd_config (в основном обновленный, чтобы разрешить только паб / закрытые ключи):
# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication:
LoginGraceTime 180
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no
AllowGroups sshusers
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
MaxStartups 10:30:60
#Banner /etc/issue.net
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
У кого-нибудь есть идеи, которые я могу попробовать, или испытал что-нибудь подобное?