Apple Watchでsudoしたい(今度はLinuxのsudo)
Apple Watchでsudoしたいという話を書いたが、本音を言うと「sshでログインしてるRHELのsudo時にパスワードを入力するのがダルい」です。macOSのパスワードは大したことないんです。自宅鯖のパスワードは30文字近くあるので、慣れているとは言え、何度も連続するとかなりダルい。
で、以下のフローを考えて、macos-authというPAMを実装した。
+----------------------+ +----------------------+
| Linux host | | macOS user session |
| | | |
| user runs sudo | | macos-auth-agent |
| | | | LocalAuthentication |
| v | | Touch ID / Watch |
| Linux PAM | | ^ |
| | | | | |
| v | signed request | | |
| pam_macos_auth.so |-------------------------+----------+ |
| | | via SSH RemoteForward Unix socket |
| v | | |
| macos-auth-helper | signed response | |
| | |<-----------------------------------------------|
| v | | |
| PAM result | | |
| - approved: success| | |
| - unavailable: | | |
| password fallback | |
| - tamper/unsafe: | | |
| hard fail | | |
+----------------------+ +----------------------+
macOS側
インストールはbrewで。
brew update
brew install --cask rioriost/cask/macos-authLinux側
インストールはrpm/dnf、あるいはdpkg/aptで。
rpm -Uvh macos-auth-0.1.0-1.rhel9.x86_64.rpm
dpkg -i macos-auth_0.1.0_ubuntu24.04_amd64.deb設定
なかなかややこしいので、README.ja.mdをよく読んで設定してみてください。
キモい!
うまく設定できれば、sudoすると、こうなります。


