sshnet / sshnet/SSH.NET

Renci.SshNet.Sftp iOS iPad - Connection Error

Ouverte
#804 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
C#
Étoiles
4.4k
Forks
993
Merge moyen
9 j 21 h
PR mergées (30 j)
1

Description

I've a problem while connecting with a sftp - Server with my iPad iOS 14.4.1.

I'm using the Renci.SshNet.Sftp Framework. On Mac Osx or Windows everything works perfectly. But on iPad its stops working at "sshClient.Connect();" I put the private key file into the StreamingAssets Folder.

I'm using port 22. The server does not get any connection try.

`public void DownloadDirectory(){
Renci.SshNet.ConnectionInfo conn =
new ConnectionInfo(hostName, port, username, new AuthenticationMethod[]
{

    new PrivateKeyAuthenticationMethod(username, new PrivateKeyFile[]
           { new PrivateKeyFile(Application.streamingAssetsPath + "/privatekeyFile", "") }),
    });
    try
    {
        using (var sshClient = new SftpClient(conn))
        {
            sshClient.Connect();
            var files = sshClient.ListDirectory(directory);
            foreach (var file in files)
            {
                if (!file.Name.StartsWith(".") && file.Name.StartsWith(localFileName))
                {
                    string remoteFileName = file.Name;
                    using (Stream file1 = File.OpenWrite(Application.streamingAssetsPath + localFileName))
                    {
                        Debug.Log(directory + remoteFileName);
                        sshClient.DownloadFile(directory + remoteFileName, file1);
                    }
                }
            }
        }
    }
    catch (Renci.SshNet.Common.SshConnectionException)
    {
        Debug.LogError("Cannot connect to the server.");
    }
    catch (System.Net.Sockets.SocketException)
    {
        Debug.LogError("Unable to establish the socket.");
    }
    catch (Renci.SshNet.Common.SshAuthenticationException)
    {
        Debug.LogError("Authentication of SSH session failed.");
    }
}`

Error Message from Xcode.

` (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

NullReferenceException: Object reference not set to an instance of an object.
  at System.Linq.Expressions.Interpreter.LightLambda.MakeRunDelegateCtor (System.Type delegateType) [0x00000] in <00000000000000000000000000000000>:0
  at System.Linq.Expressions.Interpreter.LightLambda.GetRunDelegateCtor (System.Type delegateType) [0x00000] in <00000000000000000000000000000000>:0
  at System.Linq.Expressions.Interpreter.LightLambda.MakeDelegate (System.Type delegateType) [0x00000] in <00000000000000000000000000000000>:0
  at System.Linq.Expressions.Interpreter.LightDelegateCreator.CreateDelegate (System.Runtime.CompilerServices.IStrongBox[] closure) [0x00000] in <00000000000000000000000000000000>:0
  at System.Linq.Expressions.Interpreter.LightDelegateCreator.CreateDelegate () [0x00000] in <00000000000000000000000000000000>:0
  at System.Linq.Expressions.Expression`1[TDelegate].Compile (System.Boolean preferInterpretation) [0x00000] in <00000000000000000000000000000000>:0
  at System.Linq.Expressions.Expression`1[TDelegate].Compile () [0x00000] in <00000000000000000000000000000000>:0
  at System.Runtime.CompilerServices.CallSite`1[T].CreateCustomNoMatchDelegate (System.Reflection.MethodInfo invoke) [0x00000] in <00000000000000000000000000000000>:0
  at System.Runtime.CompilerServices.CallSite`1[T].MakeUpdateDelegate () [0x00000] in <00000000000000000000000000000000>:0
  at System.Runtime.CompilerServices.CallSite`1[T].GetUpdateDelegate (T& addr) [0x00000] in <00000000000000000000000000000000>:0
  at System.Runtime.CompilerServices.CallSite`1[T].GetUpdateDelegate () [0x00000] in <00000000000000000000000000000000>:0
  at System.Runtime.CompilerServices.CallSite`1[T]..ctor (System.Runtime.CompilerServices.CallSiteBinder binder) [0x00000] in <00000000000000000000000000000000>:0
  at System.Runtime.CompilerServices.CallSite`1[T].Create (System.Runtime.CompilerServices.CallSiteBinder binder) [0x00000] in <00000000000000000000000000000000>:0
  at Renci.SshNet.Session.HandleMessageCore (Renci.SshNet.Messages.Message message) [0x00000] in <00000000000000000000000000000000>:0
  at Renci.SshNet.Session.MessageListener () [0x00000] in <00000000000000000000000000000000>:0
  at System.Action.Invoke () [0x00000] in <00000000000000000000000000000000>:0
  at Renci.SshNet.Abstractions.ThreadAbstraction+<>c__DisplayClass1_0.<ExecuteThread>b__0 (System.Object o) [0x00000] in <00000000000000000000000000000000>:0
  at System.Threading.WaitCallback.Invoke (System.Object state) [0x00000] in <00000000000000000000000000000000>:0
  at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context (System.Object state) [0x00000] in <00000000000000000000000000000000>:0
  at System.Threading.ContextCallback.Invoke (System.Object state) [0x00000] in <00000000000000000000000000000000>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <00000000000000000000000000000000>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <00000000000000000000000000000000>:0
  at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00000] in <00000000000000000000000000000000>:0
  at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00000] in <00000000000000000000000000000000>:0
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <00000000000000000000000000000000>:0

(Filename: currently not available on il2cpp Line: -1)`

Is Renci.sshnet supporting iOS devices ?
Hope you can help me.

Regards

MotionBrain

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par reproduire l’échec de connexion iOS 14.4.1 Unity/IL2CPP à l’aide de l’exemple et examinez Renci.SshNet.Session.HandleMessageCore, à l’endroit où la trace de la pile entre dans la bibliothèque. Comparez le comportement d’iOS avec celui de macOS ou de Windows et déterminez si SSH.NET peut se connecter à l’appareil cible et y transférer un fichier sans l’exception signalée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
csharp, ios, unity
Domaine
mobile-dev, networking
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.