在 CentOS 上实现 “extract(解压)免密”,通常分几种场景,我按常见情况给你说明:
zip 本身如果加密了,解压时必须密码,无法真正“免密”,只能:
unzip -P 你的密码 file.zip
或脚本中:
echo "你的密码" | unzip -P - file.zip
unzip -P 密码 file.zip -d tmp
cd tmp
zip -r newfile.zip *
以后解压就不需要密码了。
tar 本身不带密码,所谓“密码”通常是:
openssl 加密把文件放到用户目录,不要放 /opt、/usr:
tar -xzf file.tar.gz
openssl enc -d -aes-256-cbc -in file.tar.gz.enc -out file.tar.gz
tar -xzf file.tar.gz
免密只能提前解密或写脚本存密码(不安全)。
通常是 SSH 免密问题:
ssh-keygen
ssh-copy-id user@centos
之后:
scp user@centos:/path/file.tar.gz .
tar -xzf file.tar.gz
就完全不用输密码。
编辑 sudoers:
visudo
添加:
youruser ALL=(root) NOPASSWD: /bin/tar
然后:
sudo tar -xzf file.tar.gz
✅ 不要用 zip 密码
✅ 用 tar.gz
✅ 用 SSH key
✅ 用 sudo NOPASSWD
如果你能告诉我:
我可以直接给你一条最合适命令。