Помощь в обходе двухфакторной аутентификации SSH в той же локальной сети macOS

zcompile — это встроенная оболочка zsh, доступная только внутри оболочки, find— отдельная команда из оболочки, поэтому она не может работать.

zshшарики могут легко заменить findздесь:

set -o extendedglob # for ^, best in ~/.zshrc
for file (./**/^*.zwc(N.)) zcompile $file

(здесь опущены скрытые файлы и файлы в скрытых каталогах, что, вероятно, предпочтительнее; если нет, добавьте квалификатор Dglob ).

Если вы хотите использовать find, вам нужно, чтобы findвыводил список, а оболочка извлекала этот список, чтобы передать его встроенной zcompile. Что-то вроде:

find. ! -name "*.zwc" -type f -print0 |
  while IFS= read -rd '' file; do
    zcompile $file
  done

Или вам нужно findзапустить оболочку zshдля запуска ее zcompileна найденных файлах:

find. ! -name "*.zwc" -type f -exec zsh -c '
  for file do
    zcompile $file
  done' zsh {} +

(обратите внимание, что некоторые findреализации (, включая GNU find), имеют ограничение, которого нет у zshглобусов, заключающееся в том, что их *не будут соответствовать последовательности байтов, которые не образуют допустимых символов. в текущей локали ).

1
02.10.2020, 00:18
1 ответ

Я использую это на своих компьютерах Mac:

/etc/pam.d/sshd

# sshd: auth account password session
auth       binding        /usr/local/opt/google-authenticator-libpam/lib/security/pam_google_authenticator.so
auth       optional       pam_krb5.so use_kcminit
auth       optional       pam_ntlm.so try_first_pass
auth       optional       pam_mount.so try_first_pass
auth       required       pam_opendirectory.so try_first_pass
account    required       pam_nologin.so
account    required       pam_sacl.so sacl_service=ssh
account    required       pam_opendirectory.so
password   required       pam_opendirectory.so
session    required       pam_launchd.so
session    optional       pam_mount.so

/etc/ssh/sshd_config

LogLevel VERBOSE
PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords no
AuthenticationMethods publickey,keyboard-interactive:pam
ChallengeResponseAuthentication yes
UsePAM yes
AcceptEnv LANG LC_*
Subsystem   sftp    /usr/libexec/sftp-server
Match Address fc00::/7,10.0.1.0/24
    PasswordAuthentication no
    AuthenticationMethods publickey

Таким образом, для обеспечения 2fa требуются только соединения, поступающие из-за пределов локальной сети, локальные соединения основаны только на Pubkey.

1
18.03.2021, 23:00

Теги

Похожие вопросы