diff --git a/SparkleLib/SparkleFetcherSSH.cs b/SparkleLib/SparkleFetcherSSH.cs index 33fdc3cd..d55a9de8 100644 --- a/SparkleLib/SparkleFetcherSSH.cs +++ b/SparkleLib/SparkleFetcherSSH.cs @@ -16,7 +16,12 @@ namespace SparkleLib { public override bool Fetch () { - if (!RemoteUrl.Scheme.StartsWith ("http")) { + if (RemoteUrl.Host.EndsWith(".onion")) { + // Tor has special domain names called ".onion addresses". They can only be + // resolved by using a proxy via tor. While the rest of the openssh suite + // fully supports proxying, ssh-keyscan does not, so we can't use it for .onion + SparkleLogger.LogInfo ("Auth", "using tor .onion address skipping ssh-keyscan"); + } else if (!RemoteUrl.Scheme.StartsWith ("http")) { string host_key = FetchHostKey (); if (string.IsNullOrEmpty (RemoteUrl.Host) || host_key == null) {