小编use*_*531的帖子

apt-get 是如何工作的?

好的,我了解如何apt-get {install|upgrade|remove} mypackages安装、升级或删除二进制文件以及它们的配置数据文件和依赖项(实际上,remove除非提供额外的标志,否则只会删除二进制文件)。

我不是在寻找它是如何用作 man描述这一点,而是它在做什么的高级别的。我的最终目标是为我创建一种在多台远程计算机上安装和管理一些自定义软件(由 make 文件创建)的方法,我需要了解有关该过程的更多信息。如果这个问题的答案是基于所使用的发行版,请根据 Debian 进行调整。

除了它的工作原理之外,我还有以下具体问题:

  1. 访问 apt 存储库的客户端如何跟踪文件?
  2. 存储库是否必须托管在同一操作系统上(即 apt 存储库可以托管在 redhat 上)?
  3. 如何指定安装文件的位置?这是由.deb文件指定的吗?
  4. 远程机器如何访问存储库?它只是 ftp(s) 或 http(s) 吗?
  5. 托管存储库的机器是否正在运行特殊软件(例如用于 git 存储库的 gitlab),还是只是一些结构化文件系统?

aptitude debian apt package-management repository

44
推荐指数
1
解决办法
2万
查看次数

如何识别 gpg 密钥 ID,以便它们可以被删除

执行后apt-key list,我看到一个我想删除的键。

...
pub   rsa2048 2017-11-24 [SC]
      3241 413F 3CE0 B919 E82F  DCA0 6239 92CF C9A9 7C2C
uid           [ unknown] John Doe <john.doe@gmail.com>
sub   rsa2048 2017-11-24 [E]
...
Run Code Online (Sandbox Code Playgroud)

man apt-key告诉我我可以通过执行删除一个键apt-key del keyid。它还告诉我list(又名finger)将列出带有指纹的可信密钥,所以我假设这3241 413F 3CE0 B919 E82F DCA0 6239 92CF C9A9 7C2C是指纹而不是 keyid。我弄乱了gpg --list-keysand gpg --list-public-keys,但是,它没有列出任何键,而是~/.gnupg/使用各种不显示键 ID 的非文本文件创建。

如何识别密钥 ID 以便我可以删除密钥?

附注。在问这个问题之前,我搜索了一个解决方案,有些人建议不要使用“short key ids”。如果我不应该按照 描述的 keyid 删除密钥man apt-key,请提供适当的方式。

debian apt gpg apt-key

17
推荐指数
1
解决办法
2万
查看次数

每 X 秒执行一次命令

我希望每 10 秒执行一次命令,并在后台执行它(从而消除watch?)。所有答案都显示如下内容,但这将执行 11 到 14 秒。如何做到这一点?

while true; do
    # perform command that takes between 1 and 4 seconds
    sleep 10
done
Run Code Online (Sandbox Code Playgroud)

shell bash sleep shell-script watch

11
推荐指数
2
解决办法
6883
查看次数

显示按术语过滤的 git diff 的文件名

-n用作 grep 参数来显示行号,但-H不适用于文件名。我认为这是因为git diff默认情况下不会为每个更改的行输出文件名。在我打字时,我考虑了显示多行的另一种选择,它解决了我的直接问题,但仍然想知道显示实际文件名的解决方案。

[michael@bigbox www]$ git diff | grep -n -H "this->config"
(standard input):614:-        $config=json_decode($this->config,true);
[michael@bigbox www]$
Run Code Online (Sandbox Code Playgroud)

grep git

9
推荐指数
1
解决办法
2424
查看次数

如何获取默认 Linux 等文件的副本

只是偶尔,我忘了做一个给定的linux文件,如备份/etc/rc.local/etc/rsyslog.conf/etc/dhcpcd.conf,等,以后想我做到了。与分发无关,是否有一种好方法可以稍后获取未修复副本的副本?

linux configuration etc

8
推荐指数
1
解决办法
828
查看次数

如何使用普通用户的 ssh 密钥但具有 sudo 文件权限的任何命令(例如 git)

我可以按如下方式克隆一个项目:

$ git clone git@mysite.com:root/myproject.git ~/bla
Run Code Online (Sandbox Code Playgroud)

但现在我想将它克隆到/var/www. 所以我尝试

$ git clone git@mysite.com:root/myproject.git ~/var/www
Run Code Online (Sandbox Code Playgroud)

但是,唉,我无权写入/var/www. Sudo 来救援!

$ sudo git clone git@mysite.com:root/myproject.git ~/var/www
Cloning into 'www'...
git@mysite.com's password:
Run Code Online (Sandbox Code Playgroud)

这是什么?我被要求输入密码?我们不应该不需要臭密码!

我显然是将 root 用户的 ssh 密钥与请求一起发送,但由于它们尚未导入到 git 存储库中,因此我被拒绝了。过去,我的解决方案是临时更改文件夹的权限或先将其克隆到我有权访问的某个位置,然后使用 sudo 移动它,但我想了解这样做的正确方法。

那么......我如何使用普通用户的 ssh 密钥但 sudo 文件权限使用 git?

permissions sudo git files

6
推荐指数
1
解决办法
5588
查看次数

如何防止 gpg 包含 SHA1?

apt-get抱怨签名无效且InRelease文件未签名(请参阅使用 Centos 对 .deb 包进行签名以了解背景)。在服务器上,我已经验证使用gpgInRelease实际上已签名。

根据Debian 9、APT 和 "GPG error: ... InRelease: The following signatures was invalid:",需要执行以下操作:

调整 $HOME/.gnupg/gpg.conf 中的personal-digest-preferences 和personal-digest-preferences 以从GPG 偏好中消除SHA-1。这可以防止问题再次出现在新密钥上。

在查看我的 reprepro 设置后,我在 Release 文件(和 InRelease clearsign 签名)和单个 Packages 文件下都显示了 SHA1,所以我希望这样做会成功。

~/.gnupg/gpg.conf似乎表明我将使用 , 中描述的哈希算法default-preference-list,然后列出首先使用的算法(如果可用)。

[michael@bigbox ~]$ cat ~/.gnupg/gpg.conf
# Prioritize stronger algorithms for new keys.
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 BZIP2 ZLIB ZIP Uncompressed
# Use a …
Run Code Online (Sandbox Code Playgroud)

gnu hashsum gpg signature

6
推荐指数
1
解决办法
3125
查看次数

gpg:被用户取消

尝试创建将用于托管在我的 Centos7 机器上的 apt 存储库的 GPG 密钥。我创建了一个新用户“apt”,然后尝试创建密钥,但最后,它指出我需要一个密码短语,但随后立即关闭说明被用户取消。不,不是!

从那以后,我成功地重复了这些相同的步骤 root 并作为我的标准用户名,它恰好在轮组中。

两个问题:

  1. 将不同的 gpg 密钥用于不同的用途(例如这个 apt 存储库)是否是个好主意,并且是否应该以 root 身份创建密钥?
  2. 为什么我无法为该用户创建 gpg 密钥?我是否需要先为该用户创建其他密钥?

谢谢

[apt@devserver ~]$ gpg --gen-key
gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) …
Run Code Online (Sandbox Code Playgroud)

security encryption key-authentication gpg

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

每 2 小时由对等方重置套接字

客户端通过 tcp 套接字使用 ssl (openssl) 连接到服务器。

如果没有正在进行的通信,2 小时后(加上几分钟),客户端会抱怨“套接字错误。对等方重置连接”。

我已经通过让客户端在收到此警告时打开新连接的方式进行了几天的测试,并且该模式每两个小时重复一次。我已经查看了客户端和服务器上的 cron 作业,但看不到任何可能正在执行此操作的作业。

请注意,套接字服务器 (reactphp) 不知道套接字曾经被关闭。

什么可能导致连接每两小时重置一次?是否有可能这样做的内核配置设置?

ssl tcp socket

4
推荐指数
1
解决办法
1854
查看次数

ssh-copy-id 但相反

我了解如何将我的公共 ssh 密钥放入另一台计算机的授权密钥中,ssh-copy-id前提是我有远程计算机的用户名/密码。

反过来怎么可能呢?获取一些远程计算机的公钥(不需要密码,因为它是公共的)并将其放入我自己的授权密钥中(同样,不需要密码,因为它是我的)。

ssh

2
推荐指数
1
解决办法
5090
查看次数

转发端口的 RSA 密钥指纹代表什么?

我对 RSA 指纹的理解是它基本上是一个哈希密钥。

我对转发端口的理解是根据以下部分man ssh

 -R [bind_address:]port:host:hostport
         Specifies that the given port on the remote (server) host is to
         be forwarded to the given host and port on the local side.  This
         works by allocating a socket to listen to port on the remote
         side, and whenever a connection is made to this port, the connec?
         tion is forwarded over the secure channel, and a connection is
         made to host port hostport from the local machine.
Run Code Online (Sandbox Code Playgroud)

使用 ssh …

ssh ssh-tunneling

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

编辑 /etc/fstab 以永久绑定挂载目录

我希望使以下安装永久化:

[michael@devserver ~]$ findmnt | grep public
??/home/jail/home/public/repo         /dev/mapper/centos-root[/home/michael/testing/gateway/repo] xfs        ro,relatime,attr2,inode64,noquota
[michael@devserver ~]$
Run Code Online (Sandbox Code Playgroud)

我使用以下方法创建了这个安装:

sudo mkdir /home/jail/home/public/repo
sudo mount --bind /home/michael/testing/gateway/repo /home/jail/home/public/repo
sudo mount -o remount,ro,bind /home/jail/home/public/repo
Run Code Online (Sandbox Code Playgroud)

/etc/fstab目前看起来如下。我希望,我应该只是补充/home/michael/testing/gateway/repo /home/jail/home/public/repo xfs ro,relatime,attr2,inode64,noquota 0 0/etc/fstab,但在这样做,我的服务器扼流圈和我有紧急模式去删除这条线/etc/fstab。永久绑定挂载目录以进行只读访问的正确方法是什么?

[michael@devserver ~]$ cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Fri Apr  8 14:15:42 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info …
Run Code Online (Sandbox Code Playgroud)

centos mount lvm fstab bind-mount

1
推荐指数
1
解决办法
3万
查看次数

确定两个iso图像是否相等

我最近在多台机器上使用dd. 我的命名并没有做得很好,并且有一些重复。如何快速确定两个图像是否相等?我一直在使用,diff但需要一段时间。

iso diff dd disk-image

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