質問: macosへのsshは公開鍵認証を拒否します デスクトップlinuxマシンからmacosラップトップにsshを使用すると、公開鍵が拒否されます。パスワードを使って接続できます。私はこれに似たいくつかの質問を見てきました(例: 522652 、 13351 および 47175 )が、私がしなかった適切な解決策を提供するものはありませんすでに試しました。通常、この時点で、エージェントにキーがないか、.ssh/authorized_keysファイルが正しくないことが疑われます。macラップトップから(ターゲット):$ /bin/ls -ld ~/.ssh{,/authorized_keys} drwx------ 11 rik staff 352 oct 30 21:49 /users/rik/.ssh -rw-r--r-- 1 rik staff 1981 oct 30 21:27 /users/rik/.ssh/authorized_keys linuxデスクトップ(ソース)から:$ ssh-add -l ssh-rsa aaaab3[...]2akn7r /users/rik/.ssh/id_rsa ssh-rsa aaaab3[...]ig+ds3 /home/rik/.ssh/id_rsa authorized_keysをraspberrypiにコピーし、それにsshすることができます。各マシンにssh -vvvを使用すると、さらに多くの手がかりが得られます。ラズベリーパイへ:... debug1: rekey after 134217728 blocks debug2: key: /home/rik/.ssh/id_rsa (0x55a9f8044310), agent debug2: key: /users/rik/.ssh/id_rsa (0x55a9f8049330), agent debug2: key: /home/rik/.ssh/id_dsa ((nil)) debug2: key: /home/rik/.ssh/id_ecdsa ((nil)) debug2: key: /home/rik/.ssh/id_ed25519 ((nil)) debug3: send packet: type 5 debug3: receive packet: type 7 debug1: ssh2_msg_ext_info received debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521> debug3: receive packet: type 6 debug2: service_accept: ssh-userauth debug1: ssh2_msg_service_accept received debug3: send packet: type 50 debug3: receive packet: type 51 debug1: authentications that can continue: publickey,password debug3: start over, passed a different list publickey,password debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password debug3: authmethod_lookup publickey debug3: remaining preferred: keyboard-interactive,password debug3: authmethod_is_enabled publickey debug1: next authentication method: publickey debug1: offering rsa public key: /home/rik/.ssh/id_rsa debug3: send_pubkey_test debug3: send packet: type 50 debug2: we sent a publickey packet, wait for reply debug3: receive packet: type 60 debug1: server accepts key: pkalg rsa-sha2-512 blen 279 ... それが私が見たいものです(50を送信し、60を受信します)。 macラップトップに接続するときの同じセクションは次のとおりです。... debug1: rekey after 134217728 blocks debug2: key: /home/rik/.ssh/id_rsa (0x5633631f5310), agent debug2: key: /users/rik/.ssh/id_rsa (0x5633631f6950), agent debug2: key: /home/rik/.ssh/id_dsa ((nil)) debug2: key: /home/rik/.ssh/id_ecdsa ((nil)) debug2: key: /home/rik/.ssh/id_ed25519 ((nil)) debug3: send packet: type 5 debug3: receive packet: type 7 debug1: ssh2_msg_ext_info received debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521> debug3: receive packet: type 6 debug2: service_accept: ssh-userauth debug1: ssh2_msg_service_accept received debug3: send packet: type 50 debug3: receive packet: type 51 debug1: authentications that can continue: publickey,password,keyboard-interactive debug3: start over, passed a different list publickey,password,keyboard-interactive debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password debug3: authmethod_lookup publickey debug3: remaining preferred: keyboard-interactive,password debug3: authmethod_is_enabled publickey debug1: next authentication method: publickey debug1: offering rsa public key: /home/rik/.ssh/id_rsa debug3: send_pubkey_test debug3: send packet: type 50 debug2: we sent a publickey packet, wait for reply debug3: receive packet: type 51 debug1: authentications that can continue: publickey,password,keyboard-interactive debug1: offering rsa public key: /users/rik/.ssh/id_rsa debug3: send_pubkey_test debug3: send packet: type 50 debug2: we sent a publickey packet, wait for reply debug3: receive packet: type 51 debug1: authentications that can continue: publickey,password,keyboard-interactive debug1: trying private key: /home/rik/.ssh/id_dsa ... これは、サーバーが一般にpublickeyを受け入れても、これらの特定のキーを受け入れないことを示しています。繰り返しになりますが、サーバー側の設定ミスを探しています。 macosでは、設定は/private/etc/sshにあります。$ grep '^[^#]' /private/etc/ssh/sshd_config authorizedkeysfile .ssh/authorized_keys usepam yes acceptenv lang lc_* subsystem sftp /usr/libexec/sftp-server 何も問題はありませんが、問題があるのかもしれません。そこで次に、コンソール出力を調べて、そこに何かが表示されるかどうかを確認しました。コンソールアプリでは、sshの試行ごとに一貫して次の6行を取得します。error 22:25:56.376189-0400 sshd send failed: invalid argument error 22:25:56.376624-0400 sshd send failed: invalid argument error 22:25:56.376676-0400 sshd send failed: invalid argument error 22:25:56.400722-0400 kernel sandbox: sshd(1215) deny(1) mach-lookup com.apple.logd error 22:25:56.400952-0400 kernel sandbox: sshd(1215) deny(1) mach-lookup com.apple.diagnosticd error 22:25:56.689723-0400 kernel sandbox: com.apple.webkit(37255) deny(1) mach-lookup com.apple.coredisplay.notification その中でsandboxを見て、古いバージョンのsshd_configの行に気づき、それをコピーしてsshを再起動しました。この線:useprivilegeseparation sandbox # default for new installations. sshを再起動するには:# launchctl stop com.openssh.sshd # launchctl start com.openssh.sshd これは効果がなかったので、構成の変更を元に戻しました。それに関連する検索が私を導きました ここ 。 「設定|セキュリティとプライバシー|プライバシー|フルディスクアクセス| sshd-keygen-wrapper」がチェックされていることを確認しました。最近、ラップトップでcatalinaにアップグレードしました。私はかなり長い間sshを使用して接続していませんが、過去に機能していたことは知っています。catalinaは、受け入れる公開鍵の種類についてより制限的になっているのではないかと考えました。そこで、新しいキーを別のファイルに生成し、公開キーをauthorized_keysに追加し、そのキーをエージェントに追加し、エージェントが新しいキーを持っていることを確認して、再試行しました。キータイプに対するより大きな制限が原因である場合、彼らはssh-keygenデフォルトを一致するようにアップグレードするのを忘れました。 (しかし、私はappleはそのようなことをしないだろうと言うつもりはありません。)publickey認証を再び機能させる方法を理解するのに迷っています。任意の提案を歓迎します。
回答: 典型的なmacのトラブルシューティング手法...リモート管理を有効または無効にしましたか? vnc(sshトンネルと大まかに関連付けられている)では解決できない同様の問題があります。 vncパスワードは接続を許可しませんが、ユーザー名とパスワードを使用すると接続が許可されます。また、これはセキュリティ上の制限があるのではないかと思います。