我有一组用于登录帐户和服务器的 SSH 密钥。但是,自从我将我的主要工作配置文件移动到 USB 驱动器(出于同步和易用性以及其他原因)以来,我一直无法直接使用配置文件中的 SSH 密钥进行身份验证,而不得不创建本地副本。
正常的 SSH 工作流程通常会进行
ssh-add $HOME/.ssh/id_server_key
ssh username@domain
Run Code Online (Sandbox Code Playgroud)
哪个工作没有问题。但是,为了防止每台机器都有我的密钥的副本,我将它们移到了 xexternal 驱动器,USB 格式为vfat
. 那么工作流应该变成这样:
ssh-add /run/media/myself/USB/.ssh/id_server_key
ssh username@domain
Run Code Online (Sandbox Code Playgroud)
......这不起作用。SSH 抱怨做一些事情来保护我:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @警告:未受保护的私钥文件!@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ “id_server_key”的权限 0644 太开放了。 要求其他人无法访问您的私钥文件。 此私钥将被忽略。 错误的权限:忽略键:id_server_key 权限被拒绝(公钥)。
虽然我可以理解,但在这种情况下它并没有真正保护我。
USB 驱动器在我的发行版中自动挂载,带有 (我认为) 的 fmask 022
。我可以卸载并重新挂载带有 fmask 的 USB 驱动器,077
但这将 (1) 每次都需要超级用户权限,并且 (2) 影响设备中的每个文件,而不仅仅是 SSH 密钥。
我已经尝试为密钥创建一个符号链接,即使之前使用了umask
我在一些提示和技巧中看到的:
cd .ssh
umask 077
ln -s /run/media/myself/USB/.ssh/id_server_key
Run Code Online (Sandbox Code Playgroud)
但是权限不能以这种方式用于符号链接,所以我什么也没得到。
那么,如果目标是在机器上没有密钥的物理副本,我在这里有哪些可用的选项 …
一些背景:我使用 Debian 7 作为我的主要环境,我想告诉我的系统,glibc = 2.15
除了glibc = 2.13
使用一些更新的应用程序所需的环境之外,我还拥有。
我从网上的各种教程中获得了 glibc,用于安装,例如:Steam。它已解压,/usr/local/lib/libc6-2.15
我已经用一些应用程序(例如 Pidgin 2.10、Boinc 7 和 Stellarium)对其进行了测试,它运行良好(到目前为止,我确实希望它最终会优雅地失败)。因为如果我也可以从打包的源安装这些应用程序会好得多(例如,clang 和 Boinc 都在测试中),我想通过我做的虚拟包告诉我的系统,事实上,有glibc 2.15 可用。
当然,我知道这equivs
是一种为尚未从存储库安装的东西创建虚拟包的工具,但到目前为止我还没有找到关于如何使用的好的文档equivs
创建可以更新已安装包的虚拟包的,理想情况下不破。
我首先尝试了显而易见的:
Package: libc6
Version: 2.15-1
Run Code Online (Sandbox Code Playgroud)
并且 dpkg 安装了生成的包,预期的结果是它卸载了已经存在的包libc
进行更新并使系统处于无法使用的状态。(当然,我在虚拟机中试过这个)。我也试过
Version: >= 2.13
Run Code Online (Sandbox Code Playgroud)
没有任何好的结果。
我试图通过创建不同名称的包来寻找使用Provides或Enhances的方法
Package: local-libc6
Version: 2.15
# Either this:
Provides: libc6
# Or this:
Enhances: libc6 (< 2.15)
Run Code Online (Sandbox Code Playgroud)
但到目前为止,我还没有成功equivs
创建一个可安装的包(aptitude 抱怨提供或增强无效),甚至根本没有创建一个包。
当然,这个想法是创建一个虚拟包,libc
它不会卸载已经安装的包,而只是“提供”新版本。但是到目前为止,我发现文档在这方面非常缺乏(而且我真的不想深入研究并迷失在 DPKG …
使用不同用户(每个项目一个用户)设置 Apache 虚拟主机和 PHP-FPM 池的正确方法是什么?
\nwww-data
,无法访问池化项目?我有一个将 Apache 与虚拟主机一起使用的设置,并且我想为每个虚拟主机设置自己的php-fpm
池:
site1.conf
:<VirtualHost *:443>\n DocumentRoot /var/www/site1/public\n\n <Directory /var/www/site1/public>\n Options Indexes FollowSymLinks\n AllowOverride All\n Require all granted\n </Directory>\n\n <FilesMatch \\.php$>\n # 2.4.10+ can proxy to unix socket\n SetHandler "proxy:unix:/run/php/php-fpm.site1.sock|fcgi://localhost/"\n </FilesMatch>\n\n</VirtualHost>\n\n
Run Code Online (Sandbox Code Playgroud)\nsite1
:[site1]\nuser = site1\ngroup = site1\nlisten.owner = site1\nlisten.group = www-data\nlisten.mode = 0660\n\n
Run Code Online (Sandbox Code Playgroud)\n/var/www/site1
: …