web-dev-qa-db-ja.com

Visual Studio 2015からXamarin Macエージェントを使用してMacに接続できません

Xamarinでの冒険を続けています。

ポータブルクラスライブラリ(PCL)を使用してXamarin Formsアプリケーションを開発しています。

Androidでアプリケーションをコンパイルおよびデバッグしましたが、今はiOSでアプリケーションを実行してこのプラットフォームでテストすることに興味があります。

PCとMacの接続に問題があります。

XamarinツールがインストールされたVisual Studio Community 2015がインストールされたPC(Windows 8.1)があります。

Mac Miniに、OS X(v10.11.3)、XCode(v7.2)、およびXamarin Studioをインストールしました。 Xamarinアカウントでログインしました。

2台のマシンには、同じXamarinバージョンがあります。

Xamarin walkthrough に従いました。

Visual StudioでXamarin Macエージェントを開きます。 Mac Miniが見つかりました。次に、Macの資格情報(ユーザーとパスワード)を尋ねられます。

enter image description here

この時点でログインが機能します。

enter image description here

次に、ソリューションで、iOSプロジェクトをスタートアッププロジェクトとして設定します。ソリューションをクリーンにし、再度ビルドして、コンパイル/デバッグプロセス(F5)を開始します。

この時点で、出力はメッセージを取得します。

1> MacサーバーMacs-Mac-mini.localへの接続...

1> C:\ Program Files(x86)\ MSBuild\Xamarin\iOS\Xamarin.iOS.Windows.After.targets(54,5):警告:既存のsshキーを使用してユーザーを認証できませんでした

1> C:\ Program Files(x86)\ MSBuild\Xamarin\iOS\Xamarin.iOS.Windows.After.targets(54,5):エラー:Address = 'Macs-Mac-mini.local'に接続できませんUser = 'macmini

Macに接続できるかどうかをユーザー/パスワードで確認するためにPuTTY(SSHクライアント)を使用しましたが、成功しました。

Xamarin Macエージェントを使用するたびに、/ Users/macmini2/.ssh/authorized_keysファイル(Macマシン)にVisual Studioが新しいキーエントリを追加します(同じ繰り返しが追加されます)。

おそらく問題はsshキーに関連していると思います。なぜこの問題があるのですか?私は何を間違えていますか?

私がテストしたことは、Xamarin Studioを使用してMacでXamarinプロジェクトを直接開き、ビルドしてシミュレーターを実行することでした。できます。

他の同様の question を見ましたが、同じ問題はないと思います。

編集:

コンパイル/デバッグを試みるときのエラーに関するより具体的な情報:

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 ---

編集2:

Xamarinページのトラブルシューティング を修正しました。具体的には、「SSHキーで認証できません。最初に資格情報でログインしてみてください」ということです。

私は実行しました:

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

そして、ファイルの内容は次のとおりです。

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

しかし、今、私はそれを解決するために何をしなければならないかわかりません。

20
stivex

私の問題に関する解決策を見つけました。次の手順を実行しました。

  1. 私のWindows:「%localappdata%\ Xamarin\MonoTouch」からコンテンツを削除しました。
  2. Mac端末の場合:authorized_keys Macファイルを削除します(私の場合は「rm /Users/macmini2/.ssh/authorized_keys」)
  3. Macターミナルの場合:chmod g-w/Users/macmini2 /
  4. Macターミナルの場合:chmod 700 /Users/macmini2/.ssh/
  5. Macターミナルの場合:空のファイルを作成します:/Users/macmini2/.ssh/authorized_keys(たとえば、vimを使用)
  6. Macターミナルの場合:chmod 600 /Users/macmini2/.ssh/authorized_keys
  7. Visual Studioの場合:Xamarin Macエージェントでログイン
  8. Visual Studioの場合:[デバッグ]-[iPhoneSimulator]-[iPhone 5 iOS 8.1]でアプリケーションを実行します
  9. そして最後に、シミュレーターはMacコンピューターで実行されます。

このリンク 助けてくれました。

14
stivex

からすべてを削除してみてください

%localappdata%\Xamarin\MonoTouch

それは私を助けた、私は今日同じ(または同様の)問題を抱えていた。

25

Xamarinには、SSHの問題に重点を置いたトラブルシューティングページがあります。

接続のトラブルシューティング

具体的には次の2つです。

ログファイルの場所

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

ログファイルは、Visual Studioの[ヘルプ]> [Xamarin]> [Zipログ]を参照して見つけることができます。

"SSHキーで認証できません。最初に資格情報でログインしてみてください"

既知の原因:

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".

さらに、このセクションがあります。このセクションは、表示されているエラーとは直接一致しませんが、SSHの構成と診断について詳しく説明します。

"MacBuildHost.localに接続できませんでした。もう一度やり直してください。"

報告された原因:

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.
7
Marakai

この問題を解決しました!それはナンセンスだった。

Visual Studio Xamarinプロジェクトを接続し、Macでそれをシミュレートするには:

Computername.localに接続できませんでした。しばらくしてからもう一度お試しください。

次にする必要があること:

  1. この時点以降、すべてが正常に接続された場合は接続しますが、そうでない場合は、Mac接続に関するxamarinコミュニティのソリューションに従ってください。
  2. MACにXAMARIN STUDIOをインストールします。インストール後、XAMARIN studioを起動し、独自のアプリを作成してシミュレーターで実行します
  3. アプリを閉じて、Windowsコンピューターから再度接続してください。この時点で、同期を行います。それだけです。

問題が解決しました!これが誰かに役立つことを願っています。

5

次の解決策を手伝ってくれました:1)WindowsでVisual Studioを開きます:Tools => Options => Xamarin => Otherをクリックし、Check Nowをクリックします

2)MacでXamarin Studioコミュニティを開きます( https://www.xamarin.com/download )Xamarin Studio Community => Check for Updates ...(そして最後の1つをダウンロード)

更新後はすべて正常に動作します。

4
Andriy Grytsiv

ここで述べたいくつかのソリューションを試しましたが、成功しませんでした。

ただし(理想的ではありませんが)管理者モードでVisual Studioを実行すると、正常に接続できます。より良い解決策が見つかるまで、いくつかの回避策になる可能性があります。

2
SuperAaz

私の場合、Macにmono SDKをインストールして問題を解決します http://www.mono-project.com/download/#download-mac

1
hkguile

Visual Studioウィザードが表示したエージェントを無視しました。 Macコンピューター名VSについての何かが理解できませんでした。

「Macを追加」し、IPアドレスを使用して、接続しました。それは迷惑だった。

1
Axle

価値があることについては、上記およびXamarinトラブルシューティングドキュメントでログを確認してこの問題を解決しました。 iOSバージョンが一致していないことが判明しました。 Macのバージョンを更新すると、機能しました。

enter image description here

1
brheal

これは完璧な解決策ではありませんが、私の場合は成功しました

Macアカウントには特殊文字を含めないでください-これはWindowsからのMacへの接続の制限です

company-mac1 ---間違っている

comapanymac1 ---正しい

1
Sanjeev Rao

私がそれを修正したのは、git bashを開いてからssh onto the mac boxを実行したことだと思います。 Ytrusting credentialsに言った後、うまくいきました。

0
Pellet

リモートログインを有効にしましたか?それは、現在マシンにログインしているユーザー/ログインですか?また、DNS名ではなくIPアドレスに直接接続しようとしましたか?

私はクライアントのネットワーク(私のドメインとは異なるドメイン)上にあり、VSはコンピューター名を介して接続しません。 I 常に IPアドレスを入力する必要がありました。また、出力パネル/ウィンドウで「Xamarin」の出力を監視し、さらに役立つ情報が表示されるかどうかを確認します。

0
valdetero

最近、この問題が発生しました(OSXホストで共有を有効にし、ファイアウォールをチェックしたにもかかわらず)。OSXマシンとWindowsマシンの両方で、まったく同じバージョンのXamarin.iOSと再起動が必要であることがわかりました。

両方を更新し、両方を再起動すると、問題が解決しました。

0
Dr. ABT