小编Lui*_*uca的帖子

SSH 使用外部存储中的密钥 - 权限?

我有一组用于登录帐户和服务器的 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)

但是权限不能以这种方式用于符号链接,所以我什么也没得到。

那么,如果目标是在机器上没有密钥的物理副本,我在这里有哪些可用的选项 …

ssh privacy

5
推荐指数
1
解决办法
8584
查看次数

Equivs:在不卸载的情况下增强或更新现有包?

一些背景:我使用 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)

没有任何好的结果。

我试图通过创建不同名称的包来寻找使用ProvidesEnhances的方法

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 …

debian package-management

5
推荐指数
1
解决办法
2290
查看次数

Apache + php-fpm:每个池、每个用户项目的适当权限?

使用不同用户(每个项目一个用户)设置 Apache 虚拟主机和 PHP-FPM 池的正确方法是什么?

\n
    \n
  • 每个用户/项目在文件访问方面彼此独立
  • \n
  • 使用普通 Apache / 的项目www-data,无法访问池化项目?
  • \n
\n

我有一个将 Apache 与虚拟主机一起使用的设置,并且我想为每个虚拟主机设置自己的php-fpm池:

\n
    \n
  • 阿帕奇虚拟主机site1.conf
  • \n
\n
<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)\n
    \n
  • PHP 池site1
  • \n
\n
[site1]\nuser = site1\ngroup = site1\nlisten.owner = site1\nlisten.group = www-data\nlisten.mode = 0660\n\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  • 目录起始于/var/www/site1: …

php apache-httpd apache-virtualhost

5
推荐指数
1
解决办法
5053
查看次数