web-dev-qa-db-fra.com

Je ne parviens pas à me connecter à Mac avec Xamarin Mac Agent à partir de Visual Studio 2015

Je continue mon aventure avec Xamarin.

Je développe une application Xamarin Forms avec une bibliothèque de classes portable (PCL).

J'ai compilé et débogué mon application avec Android, mais maintenant, je suis intéressé pour exécuter l'application sur iOS afin de tester cette plate-forme.

J'ai un problème avec la connexion entre mon PC et le Mac.

J'ai un PC (Windows 8.1) avec Visual Studio Community 2015 avec les outils Xamarin installés.

Sur mon Mac Mini, j'ai installé OS X (v10.11.3), XCode (v7.2) et Xamarin Studio. Je me suis connecté avec mon compte Xamarin.

Sur les deux machines, j'ai la même version de Xamarin.

J'ai suivi la procédure de Xamarin .

Sur Visual Studio, j'ouvre l'agent Xamarin Mac. Il trouve mon Mac Mini. Ensuite, il me demande les informations d'identification Mac (utilisateur et mot de passe).

 enter image description here

La connexion fonctionne à ce stade.

 enter image description here

Ensuite, dans la solution, j'ai défini le projet iOS en tant que projet de démarrage. Je nettoie la solution, je compile à nouveau et lance le processus de compilation/débogage (F5).

À ce stade, la sortie récupère un message:

1> Connexion au serveur Mac Macs-Mac-mini.local ...

1> C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Windows.After.targets (54,5): avertissement: impossible d'authentifier l'utilisateur à l'aide des clés ssh existantes

1> C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Windows.After.targets (54,5): erreur: impossible de se connecter à Address = 'Macs-Mac-mini.local' avec Utilisateur = 'macmini 

J'ai utilisé PuTTY (client SSH) pour vérifier avec mon utilisateur/mon mot de passe si je parviens à me connecter à Mac et j'ai eu du succès.

Dans le fichier /Users/macmini2/.ssh/authorized_keys (ordinateur Mac) chaque fois que j'utilise l'agent Xamarin Mac, Visual Studio ajoute une nouvelle entrée de clé (elle répète la même chose).

Je vois que le problème est peut-être lié aux clés ssh ... Pourquoi ai-je ce problème? Qu'est-ce que je fais mal?

Une chose que j’ai testée a été d’ouvrir le projet Xamarin directement dans Mac avec Xamarin Studio, de le construire et d’exécuter le simulateur. Ça marche.

J'ai vu d'autres questions similaires , mais je pense que le problème n'est pas le même.

MODIFIER:

Informations plus spécifiques sur l'erreur lorsque j'essaie de compiler/déboguer:

Could not authenticate the user using the existing ssh keys
Xamarin.Messaging.VisualStudio.MessagingAuthenticationException: Could not authenticate the user using the existing ssh keys ---> Renci.SshNet.Common.SshAuthenticationException: Permission denied (publickey).
   en Renci.SshNet.ClientAuthentication.Authenticate(IConnectionInfoInternal connectionInfo, ISession session)
   en Renci.SshNet.ConnectionInfo.Authenticate(ISession session)
   en Renci.SshNet.Session.Connect()
   en Renci.SshNet.BaseClient.Connect()
   en Xamarin.Messaging.VisualStudio.MessagingService.<ConnectAsync>d__70.MoveNext()
   --- Fin del seguimiento de la pila de la excepción interna ---

EDIT 2:

J'ai révisé la page dépannage de Xamarin , plus précisément, elle indique "Impossible de s'authentifier avec des clés SSH. Veuillez d'abord essayer de vous connecter avec les informations d'identification".

J'ai couru:

chmod og-w "$HOME"
grep sshd /var/log/system.log > "$HOME/Desktop/sshd.log"
cd Desktop
cat sshd.log

Et le contenu du fichier est:

Apr 18 09:23:28 Macs-Mac-mini sshd[769]: Authentication refused: bad ownership or modes for directory /Users/macmini2/.ssh
Apr 18 09:25:27 Macs-Mac-mini com.Apple.xpc.launchd[1] (com.openssh.sshd.EE9A94ED-????-....-????-77254934B300[769]): Service exited with abnormal code: 1
Apr 18 09:59:39 Macs-Mac-mini sshd[1036]: Accepted keyboard-interactive/pam for macmini2 from 192.168.54.14 port 60413 ssh2
Apr 18 09:59:39 Macs-Mac-mini sshd: macmini2 [priv][1036]: USER_PROCESS: 1040 ttys000

Mais maintenant, je ne sais pas ce que je dois faire pour le résoudre.

20
stivex

J'ai trouvé la solution à mon problème. J'ai effectué les étapes suivantes:

  1. Dans Windows: j'ai supprimé le contenu de "% localappdata%\Xamarin\MonoTouch".
  2. Dans un terminal Mac: Supprimez le fichier Mac authorised_keys ("rm /Users/macmini2/.ssh/authorized_keys" dans mon cas).
  3. Dans le terminal Mac: chmod g-w/Utilisateurs/macmini2 /
  4. Dans le terminal Mac: chmod 700 /Users/macmini2/.ssh/
  5. Sous Mac: Créez un fichier vide: /Users/macmini2/.ssh/authorized_keys (avec vim, par exemple)
  6. Sur le terminal Mac: chmod 600 /Users/macmini2/.ssh/authorized_keys
  7. Sur Visual Studio: Connexion avec l'agent Mac Xamarin 
  8. Sur Visual Studio: Exécutez l'application avec [Debug] - [iPhoneSimulator] - [iPhone 5 iOS 8.1]
  9. Et enfin, le simulateur fonctionne sur un ordinateur Mac.

Ce lien m'a aidé.

14
stivex

Vous devez essayer de tout supprimer de 

%localappdata%\Xamarin\MonoTouch

Cela m'a aidé, j'ai eu le même problème (ou un problème similaire) aujourd'hui. 

25
Dmytro Bondarenko

Xamarin a une page de dépannage qui met l’accent sur les problèmes SSH:

Dépannage de la connexion

Plus précisément ces deux:

Emplacement du fichier journal

Mac – ~/Library/Logs/Xamarin-[MAJOR.MINOR]
Windows – %LOCALAPPDATA%\Xamarin\Logs

Les fichiers journaux peuvent être localisés en accédant à Aide> Xamarin> Journaux Zip dans Visual Studio.

"Impossible de s'authentifier avec des clés SSH. Essayez d'abord de vous connecter avec les informations d'identification"

Cause connue:

SSH security restriction – This message most often means that one of the files or directories in the fully qualified path of $HOME/.ssh/authorized_keys on the Mac has write permissions enabled for other or group members. Common fix: Run chmod og-w "$HOME" in a Terminal command Prompt on the Mac. For details about which particular file or directory is causing the problem, run grep sshd /var/log/system.log > "$HOME/Desktop/sshd.log" in Terminal, and then open the sshd.log file from your Desktop and look for "Authentication refused: bad ownership or modes".

De plus, il y a cette section, qui ne correspond pas directement à l'erreur que vous voyez, mais donne quelques détails sur la configuration et le diagnostic SSH:

"Impossible de se connecter à MacBuildHost.local. Veuillez réessayer."

Causes signalées:

Bug – A few users have seen this error message when attempting to log in to the build Host using an Active Directory domain user account.

Bug – Some users have seen this error when attempting to connect to the build Host by double-clicking the name of the Mac in the connection dialog. Possible workaround: Manually add the Mac using the IP address.

Bug #35971 – Some users have run across this error when using a wireless network connection between the Mac build Host and Windows. Possible workaround: Move both computers to a wired network connection.

Bug #36642 – On Xamarin 4.0, this message will appear anytime the $HOME/.bashrc file on the Mac contains an error. (Starting with Xamarin 4.1, errors in the .bashrc file will no longer affect the connection process.) Workaround: Move the .bashrc file to a backup location (or delete it if you know you don't need it).

Limitation – This error can appear if the Mac build Host is connected to a router that has no access to the internet (or if the Mac is using a DNS server that times out when asked for the reverse-DNS lookup of the Windows computer). Visual Studio will take roughly 30 seconds to retrieve the SSH fingerprint and eventually fail to connect.

Possible workaround: Add "UseDNS no" to the sshd_config file. Be sure to read about this SSH setting before changing it. See for example http://unix.stackexchange.com/questions/56941/what-is-the-point-of-sshd-usedns-option.

The following steps describe one way to change the setting. You will need to be logged in to an administrator account on the Mac to complete the steps.

    Confirm the location of the sshd_config file by running ls /etc/ssh/sshd_config and ls /etc/sshd_config in a Terminal command Prompt. For all of the remaining steps, be sure to use the location that does not return "No such file or directory".

    Run cp /etc/ssh/sshd_config "$HOME/Desktop/" in Terminal to copy the file to your desktop.

    Open the file from your Desktop in a text editor. For example you can run open -a TextEdit "$HOME/Desktop/sshd_config" in Terminal.

    Add the following line at the bottom of the file:

    UseDNS no

    Remove any lines that say UseDNS yes to make sure the new setting takes effect.

    Save the file.

    Run Sudo cp "$HOME/Desktop/sshd_config" /etc/ssh/sshd_config in Terminal to copy the edited file back into place. Enter your password if prompted.

    Disable and re-enable Remote Login under System Preferences > Sharing > Remote Login to restart the SSH server.
6
Marakai

Je viens de résoudre ce problème! C'était un non-sens.

Pour connecter le projet Visual Studio Xamarin et le simuler sur Mac lorsque vous obtenez: 

Impossible de se connecter à computername.local. Veuillez réessayer ultérieurement.

Ce que vous devez faire ensuite:

  1. Suivez la solution proposée par la communauté xamarin sur la connexion au Mac Après ce point, si tout va bien, vous vous connecterez, mais sinon,.
  2. Installez XAMARIN STUDIO sur MAC. Après l'installation, démarrez XAMARIN studio, créez votre propre application et exécutez-le avec un simulateur.
  3. Fermez l'application et essayez à nouveau de vous connecter à partir d'un ordinateur Windows . À ce stade, vous allez effectuer la synchronisation et c'est tout.

Problème résolu! J'espère que cela sera utile à quelqu'un.

5
Jevgenij Kononov

Pour moi, aide la solution suivante: 1) Sous Windows, ouvrez Visual Studio: Outils => Options => Xamarin => Autre et cliquez sur Vérifier maintenant.

2) Sur Mac, ouvrez Xamarin Studio Community ( https://www.xamarin.com/download ) Xamarin Studio Community => Recherchez les mises à jour ...

Après les mises à jour, tout fonctionne bien.

4
Andriy Grytsiv

J'ai essayé quelques-unes des solutions mentionnées ici sans succès.

Cependant (bien que ce ne soit pas idéal) si je lance Visual Studio en mode Administrateur, je peux me connecter avec succès. Pourrait être un travail pour certains jusqu'à ce qu'une meilleure solution soit trouvée.

2
SuperAaz

Dans mon cas, j’ai installé mono sdk sur mon mac pour résoudre le problème http://www.mono-project.com/download/#download-mac

1
hkguile

Ignoré l'agent présenté par l'assistant de Visual Studio. Quelque chose à propos du nom de l'ordinateur Mac, VS n'a pas compris.

J'ai fait «Ajouter un Mac», utilisé l'adresse IP, puis il s'est connecté. C'était agaçant.

1
Axle

Pour ce que cela vaut, je viens de résoudre ce problème en consultant les journaux comme indiqué ci-dessus et dans la documentation de dépannage Xamarin. Il s'est avéré qu'il s'agissait de versions iOS incompatibles. Une fois que j'ai mis à jour la version Mac, cela a fonctionné.

 enter image description here

1
brheal

Ce n'est pas une solution parfaite, mais c'est un succès dans mon cas

Votre compte mac ne doit pas contenir de caractères spéciaux. Il s’agit là d’une limitation liée à mac sous Windows.

société-mac1 --- faux

comapanymac1 --- Correct

1
Sanjeev Rao

Je pense que ce qui a résolu le problème pour moi était d'ouvrir git bash puis d'exécuter ssh onto the mac box. Après avoir dit Y à trusting credentials cela a fonctionné.

0
Pellet

Avez-vous activé la connexion à distance et c'est l'utilisateur/la connexion actuellement connecté à la machine? De plus, avez-vous essayé de vous connecter directement à l'adresse IP au lieu du nom DNS? 

Je suis sur le réseau d'un client (domaine différent du mien) et mon VS ne se connecterait jamais via le nom de l'ordinateur. Je toujours je devais taper l'adresse IP. Surveillez également la sortie de "Xamarin" dans le panneau/fenêtre de sortie et voyez si cela donne des informations plus utiles.

0
valdetero

J'ai eu ce problème récemment (malgré l'activation du partage sur l'hôte OSX et la vérification du pare-feu) et il s'est avéré que OSX Machine et Windows Machine avaient besoin de la même version de Xamarin.iOS et d'un redémarrage. 

Mettre à jour les deux, redémarrer les deux, a résolu le problème pour moi. 

0
Dr. ABT