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

路易斯·马丘卡(Luis Machuca)

我有一组用于登录帐户和服务器的SSH密钥。但是,自从将主要工作资料移到USB驱动器以来(出于同步和易于使用等原因),我一直无法直接使用资料中的SSH密钥进行身份验证,而不得不创建本地副本。

普通的SSH工作流程通常

ssh-add $HOME/.ssh/id_server_key 
ssh [email protected]

哪个没有问题。但是,为了防止每台计算机都有我的密钥副本,我将它们移到了USB格式化为的xexternal驱动器中vfat然后,工作流程如下所示:

ssh-add  /run/media/myself/USB/.ssh/id_server_key
ssh [email protected]

...这是行不通的。SSH抱怨做一些保护我的事情:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@
//警告:未受保护的私钥文件!@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@
'id_server_key'的权限0644太开放了。
要求他人不能访问您的私钥文件。
此私钥将被忽略。
错误的权限:忽略密钥:id_server_key
权限被拒绝(公钥)。

虽然我可以理解,但在这种情况下并不能真正保护我。

USB驱动器会自动挂载在我的发行版中,其掩码为(我认为)022我可以使用fmask卸载并重新安装USB驱动器,077但这将(1)每次都需要超级用户特权,并且(2)不仅会影响SSH密钥,还会影响设备中的每个文件。

我尝试过创建到该键的符号链接,即使以前使用过,umask如我在一些技巧中所看到的:

cd .ssh
umask 077
ln -s /run/media/myself/USB/.ssh/id_server_key 

但是不能将这种权限用于符号链接,因此一无所获。

因此,如果目标是在计算机上没有密钥的物理副本,那么我在这里可以使用哪些选项其中一台机器是可以在各个地方使用的家用笔记本电脑,因此我有兴趣避免一些密钥被发现。

到目前为止,我已经考虑了以下内容:

  • 例如,是否有一个选项强制SSH(ssh-add主要是)接受来自外部设备的密钥?(我认为应该有-大多数程序都带有“我知道我在做什么”标志,但是到目前为止,我在联机帮助页中找不到它。
  • bindfs.ssh/目录上设置一个,但是问题在于该目录是非空的(因为它包含known_hosts其他数据)。
  • fuse-zip-将密钥移过来/dev/shm似乎也是一条可行的途径。

编辑:根据@Gilles的评论,是的,bindfs可以解决此问题。在检查了联机帮助页之后,使用以下调用成功进行了初始测试:

bindfs -n -r -p 0700 -o nonempty /run/media/myself/USB/.ssh/ ~/.ssh 

它绑定不允许root具有反射0700权限的其他用户(显然甚至是!)访问,也是只读的那是我最初使用bindfs时缺少的部分。nonempty由于存在诸如之类的文件,因此需要标志known_hosts这将完全保留原始工作流程,除了关于无法向其添加信息的额外警告消息known_hosts(最终我可能不会介意)。

当然,按照最初的建议,我现在将绑定到另一个目录(在/ dev / shm中),以使事情稍微容易一些。

我还不如encfs我的USB驱动器那样盘螺状,所以从隐私角度来说,这对我来说已经足够了。

吉勒斯“别再邪恶了”

ssh-add没有选项可以绕过其对密钥权限的检查。您可以重新编译程序并禁用检查。

bindfs应该可以工作。您无需将其安装在~/.ssh也无需将其安装在特殊用途的位置,也无需编写脚本即可ssh-add ~/.ssh-private-keys-bindfs

请注意,ssh是正确的,因为您的设置非常不安全。您必须确保永远不要将该驱动器插入您不是唯一用户的计算机中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用SSH克隆存储库时出现“权限被拒绝”错误?

来自分类Dev

Django中的Auth权限

来自分类Dev

MediaProvider /铃声的外部存储权限问题

来自分类Dev

授予适当的权限以在存储的过程中使用对称密钥

来自分类Dev

/在Linux中的权限

来自分类Dev

外部用户权限

来自分类Dev

lua中的权限问题

来自分类Dev

Android中的按需权限

来自分类Dev

流浪SSH权限

来自分类Dev

oracle中权限不足

来自分类Dev

正确的laravel存储权限

来自分类Dev

在Redux中处理权限

来自分类Dev

Silex中的模块权限与角色权限

来自分类Dev

日食中的权限问题

来自分类Dev

SSH权限被拒绝(公共密钥),但root ssh可以工作

来自分类Dev

使用云存储时,对Cloud KMS密钥的权限被拒绝

来自分类Dev

SSH权限被拒绝(公共密钥),但root ssh可以工作

来自分类Dev

Linux中的权限问题

来自分类Dev

使用ssh密钥设置无root权限的共享远程git存储库(已解决)(按解决方案)来管理每个用户的访问权限?

来自分类Dev

通过SSH密钥对GitHub存储库的只读访问权限

来自分类Dev

授予适当的权限以在存储的过程中使用对称密钥

来自分类Dev

外部用户权限

来自分类Dev

无法使用PC1 SSH密钥授予对PC2的访问权限到Git存储库

来自分类Dev

在Windows中解码通用权限/访问权限

来自分类Dev

我可以为位存储桶上的特定存储库分配任何SSH密钥权限吗

来自分类Dev

如何打开存储权限?

来自分类Dev

访问公共 ssh 密钥的权限被拒绝

来自分类Dev

外部硬盘的权限被拒绝

来自分类Dev

如何使用 xamarin.forms 在 android 中设置外部存储写入运行时权限

Related 相关文章

热门标签

归档