MacへSSH接続時に 'Operation Not Permitted' エラーを修正

やまと English Français Deutsch Español Português Türkçe

 MacへSSH接続時の "ls: Operation not permitted" を修正するためのクイックフィックス:


1. Terminal、sshd-keygen-wrapper、およびsshdに完全なディスクアクセスを許可
Appleメニュー > システム環境設定 > プライバシーとセキュリティ > 完全ディスクアクセスに移動し、3つのプログラムに完全ディスクアクセスを有効にします。

 

2. rootとして別のMacにSSHで切り替える

lsコマンドをsudoで実行

 

3. 'リモートログイン'を再度有効にする

システム環境設定 > 一般 > 共有で、リモートログインをオフにしてから再度オンにします。

 

4. SIPを無効にする

macOSリカバリモードに入り、ユーティリティ > ターミナルを開き、csrutil disableと入力します。

SSH(Secure Shell)を使用して他のMacに安全に接続し、特定のディレクトリの内容をリストするためにlsコマンドを実行した後、ターミナルで "ls: Operation not permitted" エラーが表示される場合があります。

このエラーは、対象のフォルダにアクセスする権限がないことを示しています。これは、SSH接続のバグ、ユーザー権限の制限、またはシステムからの制限のいずれかによるものです。

SSHで別のmacOSに接続した後のlsコマンドでのエラー "Operation not permitted" を解決するには、以下のトリックに従ってトラブルシューティングを行います。

Terminal、sshd-keygen-wrapper、およびsshdに完全なディスクアクセスを許可

macOSにSSHで接続した際にlsを実行したり特定のディレクトリにアクセスしようとした際に "Operation not permitted"エラーが発生する場合、通常はmacOSのTCC(透過性、同意、および制御)保護によるものです。

Terminal、sshd-keygen-wrapper、およびsshdに完全なディスクアクセスを許可することで、これらのTCC制限をバイパスし、SSH接続されたMacの保護された領域へのアクセスを可能にします。

  1. Appleメニュー > システム環境設定 > プライバシーとセキュリティ > 完全ディスクアクセスをクリックします。
  2. Terminalとsshd-keygen-wrapperを有効にします。
  3. 追加ボタン(+)をクリックします。
  4. ポップアップで、ロケーションの下にmacOS(またはMacintosh HD)を選択し、隠しusrフォルダを表示するために Command - Shift - .(ドットキー)を押します。
  5. sbimフォルダの中にあるsshdを見つけ、開いてFull Disk Accessリストに追加します。
    注意:usrフォルダのパスは /usr/sbin/sshd です。
  6. SSHをそこでオンにします。

ターミナル、sshd-keygen-wrapper、およびsshdにフルディスクアクセスを許可した後、ls操作が許可されていないエラーが発生するかどうかを確認してください。

この「ls:操作が許可されていません」エラーを修正する裏ワザを他の人と共有してください。

他のMacにrootとしてSSHするに切り替える

Macのセキュリティ保護が向上したため、通常のユーザーでもSSHアクセスを持っていても全権限を持っていない場合があります。そのため、フォルダのファイルを表示するためにlsコマンドを使用するときは、sudo ls /target-directoryコマンドを実行するように変更してください。

問題が解決しない場合は、次の方法を試してください。

「リモートログイン」を共有設定で再有効にする

共有設定の「リモートログイン」機能を有効にすると、Mac上のSSHサーバーが別のMacと安全な接続を確立できます。

macOSにSSH接続した後に「ls:操作が許可されていません」エラーが発生した場合、「リモートログイン」を再有効にすることで、SSHサーバー(sshd)を再起動し、SSHサーバーで発生する可能性のあるエラーを排除できるかもしれません。

  1. Appleメニュー>システム設定>一般>共有に移動します。
  2. 「リモートログイン」を見つけます。
  3. 「リモートログイン」を無効にしてしばらくしてから再度有効にします。

SIPを無効にする

M1 Macや他のMacにSSHで接続する際に「ls:操作が許可されていません」と表示される場合は、SIPを無効にすることを検討してください。現代のMacでは、セキュリティ保護が大幅に向上しています。SIPはリモートでバイパスできません。そのため、MacにSSHで接続した後lsを使用してディレクトリの内容を確認するために一時的にSIPを無効にしてみてください。

  1. Macをリカバリモードで起動します。
    IntelベースのMacでは、Command - Shift - Rを押しながらデバイスを再起動してAppleロゴまたは回転する地球が表示されるまで押します。
    Apple Silicon Macでは、Macをオフにし、電源ボタン(Touch ID)を押して起動オプションが表示されたら、選択してOptions>続行を選択します。
  2. 上部メニューバーのユーティリティをクリック>ターミナル。
  3. 次のコマンドを入力します。 csrutil disable
  4. ターミナルを終了してMacを再起動します。

他のMacにSSH接続した後は、macOSリカバリモードでコマンド-csrutil enableを使用してSIPを有効にすることを忘れないでください。

この投稿があなたのmacOSへのSSH接続時の「ls:操作が許可されていません」エラーの解決に役立つ場合は、他の人と共有してください。