AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-258098

Kevin Buchs's questions

Martin Hope
Kevin Buchs
Asked: 2021-09-03 14:01:18 +0800 CST

使用 ssh 密钥、用户隔离(sftp 与 ssh)、不同端口和用户目录限制在 Amazon Linux 2 上设置 sftp

  • 3

TDLR:我有一个 Catch 22,根据用户主目录的权限,我可以让 SSH 身份验证正常工作,或者用户目录限制,但不能同时进行。

顺便说一句,我真的很想推出自己的 SFTP 服务器。请不要推荐我尝试 AWS Transfer 服务或其他替代方案。谢谢。

以下是 /etc/ssh/sshd_config 中的相关(从默认更改)内容:

Subsystem sftp internal-sftp
Port 22
Port 2299
Match Group sftpusers LocalPort 2299
  ChrootDirectory /sftp-data/%u
  ForceCommand internal-sftp
Match Group sftpusers LocalPort 22
  DenyGroups sftpusers
Match LocalPort 2299  Group *,!sftpusers
  DenyUsers *

我希望端口 22 像 ssh 通常那样运行,但仅适用于非 sftp 用户。对于 sftp 用户,在“sftpusers”组中,我希望端口 2299 仅用作 sftp,而不是 ssh。对于非 sftpusers,我希望拒绝访问端口 2299。

好的,所以,我用主目录 /sftp-data/user1 和 shell /sbin/nologin 创建了一个用户“user1”。我创建了 /sftp-data/user1/.ssh/authorized_keys 并用公共 ssh 密钥填充了它。/sftp-data 由具有 700 权限的 root 拥有。/sftp-data/user1/.ssh 及以下为 user1 所有,/sftp-data/user1/.ssh/authorized_keys 的权限为 600。 /sftp-data/user1 的所有权/权限在这里受到质疑。更多内容如下。

我创建了用户组 sftpusers 并将 user1 添加到该组。但是,您通过 AWS 获得的内置 ec2-user 不是该组的成员。使用 ec2-user 进行测试效果很好:通过 ssh 访问,端口 22 正常工作,但无法访问端口 2299。

因此,使用 user1 进行测试是有趣的地方。User1 无法访问端口 22 - 太好了!在 user1 拥有 /sftp-data/user1 的情况下,ssh 公钥认证在端口 2299 上成功,但用户立即注销,此消息保存在 /var/log/secure 中:

Sep  2 19:21:38 ip-192-168-0-25 sshd[10369]: Accepted publickey for user1 from <ip-address redacted> port 61110 ssh2: ECDSA SHA256:<sha redacted>
Sep  2 19:13:23 ip-192-168-0-25 sshd[9803]: pam_unix(sshd:session): session opened for user user1 by (uid=0)
Sep  2 19:13:23 ip-192-168-0-25 sshd[9803]: fatal: bad ownership or modes for chroot directory "/sftp-data/user1" [postauth]
Sep  2 19:13:23 ip-192-168-0-25 sshd[9803]: pam_unix(sshd:session): session closed for user user1

当然,这是有道理的。Chroot 要求 /sftp-data/user1 由 root 拥有,权限为 700。所以,这样做,现在 sftp(ssh 密钥)身份验证失败。

Sep  2 19:41:00 ip-192-168-0-25 sshd[11693]: error: AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys user1 SHA256:<sha redacted> failed, status 22

顺便说一句,eic_run_authorized_keys 是 AWS 围绕标准 ssh 身份验证启用 AWS Instance Connect 的包装器。

对于额外的信用......如果上述问题不够具有挑战性,你能想出一个方案,我可以让特定的 sftp 用户访问特定的项目目录,而且只有那些,而不为每个项目创建一个组?从每个用户的主目录链接到项目目录会很棒。

@anx 要求的其他信息:

# getent passwd user1
user1:x:1001:1001::/sftp-data/user1:/sbin/nologin
# namei -l /sftp-data/user1/.ssh/authorized_keys
f: /sftp-data/user1/.ssh/authorized_keys
dr-xr-xr-x root  root      /
drwxr-xr-x root  root      sftp-data
drwx------ root  root      user1
drwx------ user1 sftpusers .ssh
-rw------- user1 sftpusers authorized_keys

我为 sshd 打开了调试日志记录。使用 ChrootDirectory 指令,/sftp-data/user1 由 root 拥有,并且 SSH 身份验证失败,我在 /var/log/secure 中看到了这一点:

debug1:无法打开授权密钥“/sftp-data/user1/.ssh/authorized_keys”:权限被拒绝

ps 清楚地告诉我 root 正在运行 sshd 进程。

amazon-ec2 sftp amazon-linux amazon-linux-2 ssh-keys
  • 2 个回答
  • 1173 Views
Martin Hope
Kevin Buchs
Asked: 2021-08-07 14:08:59 +0800 CST

apt-get 抛出警告:“W:--force-yes 已弃用,请改用以--allow 开头的选项之一”

  • 2

我在 Circle CI“机器”执行器上运行 Ubuntu 20.04。今天我看到:

sudo apt-get install -y pkg1 pkg2

正在抛出这个警告:

W: --force-yes is deprecated, use one of the options starting with --allow instead

我没有使用“--force-yes”。这是从哪里来的?甚至

sudo apt-get update

抛出相同的警告。

debian apt ubuntu-20.04
  • 1 个回答
  • 3711 Views
Martin Hope
Kevin Buchs
Asked: 2021-01-14 09:55:57 +0800 CST

GCP 控制台中是否有办法查看谁启动了已运行 1.5 年的 Compute Engine 虚拟机?

  • 0

有什么办法可以在控制台中做到这一点?如果不是控制台,是否有 API/SDK 选项?

google-cloud-platform console google-compute-engine
  • 1 个回答
  • 244 Views
Martin Hope
Kevin Buchs
Asked: 2019-12-14 08:06:41 +0800 CST

需要帮助了解 App Engine 中自定义域名与服务的关系

  • 0

我会坦率地承认我是 GCP App Engine 的新手。我是一个复杂配置的继承者,它似乎与多个厨师有机地发展起来,没有代码来备份它和文档?哈!因此,我正在查看自定义域名列表(App Engine -> 设置 -> 自定义域),这些域名是 CNAMES,其别名类似于 App Engine 中的服务,除了别名中的句点似乎转换为服务中的破折号. 在查看服务时,我看到许多服务都有调度路线。但是,我没有 dispatch.yml 文件。我试图确定这些点之间的联系。所以:

1) 期间会自动映射到破折号吗?2)如果以上为“否”,那么自定义域名到服务是否还有其他映射?3) 如何找到 Dispatch 路线的来源?

google-cloud-platform
  • 1 个回答
  • 616 Views
Martin Hope
Kevin Buchs
Asked: 2018-10-23 13:59:29 +0800 CST

vyos:如何在规则中使用地址组?

  • 0

我有一个(修改后的)配置,如下所示: 显示输出截图

但是,当我尝试提交时,我收到一条错误消息:“配置错误:“OUR-SERVERS”不是有效的 IP 范围。我真的希望在规则引用的组中拥有个人 (/32) 地址。如何我可以这样做吗?

vyos
  • 1 个回答
  • 231 Views
Martin Hope
Kevin Buchs
Asked: 2018-10-23 13:13:57 +0800 CST

vyos - 错误消息“重生太快”

  • 0

今天刚刚下载了最新稳定 vyos 的 ISO 1.1.8,并在我的 Mac 上的 VirtualBox 下运行。它大约每 5 分钟发出一次此消息:

INIT: Id "TO" respawning too fast: disabled for 5 minutes

那是关于什么的?

vyos
  • 1 个回答
  • 1632 Views
Martin Hope
Kevin Buchs
Asked: 2018-06-23 05:44:05 +0800 CST

Apache Httpd 2.4 重写规则返回 301 重定向,但返回 302

  • 0

我有两个不同的例子,说明 Centos7 上的 Apache Httpd 2.4 配置为使用 R=301 标志执行重定向,但它们实际上返回 302 重定向。一种是极其简单的情况,只是将http重定向到https。以下是重写规则的范围:

<VirtualHost ...>
  ... other content ...
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
  RewriteCond %{HTTP:X-Forwarded-Proto} !https
  RewriteRule ^/(.*)$ https://%{HTTP_HOST}/$1 [NC,R=301,L]
</VirtualHost>

为什么这会返回 302 重定向而不是 301?

# apachectl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   example.com (/etc/httpd/sites- 
enabled/example.com.conf:5)
*:443                  example.com (/etc/httpd/sites- 
enabled/example.com.conf:23)
Syntax OK
apache-2.4
  • 1 个回答
  • 1199 Views
Martin Hope
Kevin Buchs
Asked: 2018-06-20 08:53:10 +0800 CST

在 TLS 证书和 MacOS 上寻求基本事实 - 比较浏览器、curl、openssl

  • 1

在 Mac,High Sierra 10.13.5 上,我发现 TLS 认证验证有所不同。访问https://www.visitflorida.com时,Chrome 和 Safari 对 TLS 验证感到满意。此外,curl 没有任何抱怨,我没有使用“-k”。但是,openssl 抱怨它在尝试 this 时找不到中间证书openssl s_client -connect www.visitflorida.com:443 < /dev/null | openssl x509 -subject -noout。我已经使用了基本的 openssl 和 brew-installed 一个。

我试图添加 -CAfile intermediate.pem(我从 TrustWave 下载了中间证书)。即使中间证书没有出现在我的 KeyChain 中的任何位置,我也已将我的 KeyChain System Roots 导出到一个文件中,并通过 -CAfile 进行了尝试。没有任何工作。我看到证书的唯一文件系统位置是 /etc/ssl/cert.pem,当我通过 -CAfile 指定它时,它仍然失败。

有人建议我的浏览器和 curl 对 TLS 验证的要求比 openssl 更宽松。真的是这样吗?我很难相信。谁能帮我解释这种行为?

顺便说一句,我知道这可以通过在 www.visitflorida.com 的 TLS 端点上包含中间证书和端点证书来解决。现在,如果我们能找到那个丢失的密钥文件!

浏览器快乐:浏览器验证截图

卷曲日志:卷曲输出

ssl-certificate
  • 1 个回答
  • 476 Views
Martin Hope
Kevin Buchs
Asked: 2018-02-07 10:42:58 +0800 CST

chef:knife deps - 如何指定食谱版本

  • 1

回复:https ://docs.chef.io/knife_deps.html

使用knife deps --remote选项,我可以查询我们的厨师服务器。刀食谱列表 -a将返回所有食谱版本。如何使用Knife deps查询特定版本的食谱的依赖关系?我尝试了各种分隔符将版本号附加到食谱名称,并且我已经尝试将它们作为单独的参数。试图深入研究 ruby​​ 代码,发现这很难做到——所有这些 gem 的目的和组织都非常不清楚。

chef
  • 2 个回答
  • 807 Views
Martin Hope
Kevin Buchs
Asked: 2016-08-11 09:38:05 +0800 CST

寻求更深入地了解 MS Windows 事件 - FileSystemWatcher & Scheduled Tasks

  • 0

我面前有一个任务的上下文:我想在 WinServer2012 上创建一个计划任务,该任务由文件的最后写入日期更改生成的事件触发。

我手中有 Powershell 代码(感谢https://gallery.technet.microsoft.com/scriptcenter/Powershell-FileSystemWatche-dfd7084b),它监视此类事件并回调特定操作,例如:

$folder = 'c:\temp' # Enter the root path you want to monitor. 
$filter = 'test.txt'  # You can enter a wildcard filter here. 
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property  @{IncludeSubdirectories = $false;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'} 

Register-ObjectEvent $fsw Changed -SourceIdentifier FileChanged -Action { 
  $name = $Event.SourceEventArgs.Name 
  $changeType = $Event.SourceEventArgs.ChangeType 
  $timeStamp = $Event.TimeGenerated 
  Write-Host "The file '$name' was $changeType at $timeStamp" -fore white 
}

这段代码似乎创建了一种产生此类事件的机制,并注册了一个回调以响应此类事件。这是正确的理解吗?还是无论如何都会产生事件?当我查看 FileSystemWatcher 类的文档时,https: //msdn.microsoft.com/en-us/library/system.io.filesystemwatcher(v=vs.110).aspx似乎没有文件更改通知此类的实例化。通知与事件不同吗?该类文档说它监视通知并引发事件。因此,除非实例化此类,否则这表明事件不存在。它表明通知与事件不同。

在任务计划程序实用程序中,我可以创建一个在事件上触发的任务,我可以使用 3 个字段:日志、源和事件 ID 来识别我想要触发的事件。仔细阅读日志选项,我发现与事件查看器实用程序中可用的事件日志变体有些相似之处。根据定义,所有事件是否都发送到特定日志?

我将如何确定可用的不同日志、源和事件 ID 以及它们所指的内容?任何文件?

Powershell 代码与我可以为任务计划程序中的触发器配置的内容之间是否存在联系?可能触发器不能做得那么具体,以至于无法监视单个文件的 LastWrite 更改,并且该任务会在各种文件系统事件上被过于频繁地调用。我手头的任务可能是最好的解决方案是在启动时运行 powershell 代码,但是,我真的在寻求对事件如何工作的更深入的了解。

谢谢你的帮助。

windows windows-server-2012-r2 windows-server-2012
  • 1 个回答
  • 464 Views
Martin Hope
Kevin Buchs
Asked: 2014-12-11 12:19:51 +0800 CST

如何自定义在 CentOS 6 上使用 gnome 桌面启动的默认应用程序集。*

  • 1

背景我们运行一系列 CentOS 6.5 服务器,每个服务器托管多个用户(约 100 名)通过 X-Window XDMP 从他们的 MS Windows 桌面进入。这些用户不需要启动的默认应用程序主机,如脉冲、音量控制、vino、polkit 等。因此我们希望自定义启动的默认应用程序集。但是,我们会在这些机器上进行例行的yum 更新,并且不希望我们的自定义被覆盖。Yum/rpm 包含一些用于保留对指定配置文件的更改的规定。

问题我们可以通过 1) 删除或 2) 将行“Hidden=true”插入 /etc/xdg/autostart/ 中的适当 .desktop 文件来自定义启动的应用程序集,但是,其中一些 .desktop 文件不是在安装它们的 RPM 包中指定为配置文件(例如 gnome-media、polkit-gnome、policycoreutils、vino)。这意味着如果更新软件包,这些文件可能会被 yum 更新操作覆盖。

建议的解决方案 (1)蛮力:编写一个 yum-update 后脚本,该脚本会重新执行我们所做的更改。要么手动运行它,要么可以自定义 yum 以自动运行它。

建议的解决方案 (2)微妙但冒险:创建我们自己的自定义 RPM 包,以安装带有更改的文件。然后强制安装此 RPM。以后想要更改文件的 RPM 更新将因冲突而停止。这将中断日常的 yum 更新,我们将按照手动程序来保存/恢复定制。

非常欢迎替代解决方案、想法和批评!谢谢。

centos
  • 1 个回答
  • 309 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve