标签: bastion

堡垒宿主和跳跃宿主的关系

“堡垒主机”和“跳跃主机”之间有什么区别/相似之处?它们通常可以互换使用吗?

firewall proxy bastion

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

堡垒服务器:使用 TCP 转发 VS 将私钥放在服务器上

我们有堡垒服务器 B。我们需要使用私钥从 A 通过 B 到 C 的 SSH。

什么是更好的选择:

  • 私有 SSH 密钥放在服务器B。我们了解到在生产环境中这样做是个坏主意。

    这里

    永远不要将您的 SSH 私钥放在堡垒实例上。相反,使用 SSH 代理转发首先连接到堡垒,然后从那里连接到私有子网中的其他实例。这使您可以将 SSH 私钥保存在您的计算机上。

  • 使用SSH 代理转发。为了设置代理转发,我需要允许 TCP 转发。设置代理转发时,会在转发主机上创建一个套接字文件,这是密钥可以转发到目的地的机制。在 AWS 的堡垒设置中:

    TCP 转发:将此值设置为 true 将启用 TCP 转发(SSH 隧道)。这可能非常有用,但也存在安全风险,因此我们建议您保留默认(禁用)设置,除非需要

    也从这里

    SSH 代理转发被认为是有害的

什么是更好的?第二个链接的替代方法:ProxyCommand,我知道它有助于解决套接字文件问题,但我仍然认为我必须启用 TCP 转发,所以它足够安全吗?

security linux ssh private-key bastion

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

Ansible - 通过带有 MFA 的堡垒访问

在我当前的环境中,我的所有 Linux 服务器只能通过启用 MFA 的堡垒主机访问。

我已经设法让 Ansible 通过堡垒成功地与服务器通信,唯一的问题是它为每个主机建立了一个到堡垒的新连接,这意味着我必须输入与服务器一样多的 MFA 密钥。艰难时期。:(

我试过在我的 ssh 配置中搞乱这样的东西,试图让多路复用工作:

Host bastion
  ControlMaster auto
  ControlPath ~/.ssh/ansible-%r@%h:%p
  ControlPersist 5m
Run Code Online (Sandbox Code Playgroud)

不幸的是,它似乎并没有这样做。任何人都知道如何阻止 Ansible 通过我的堡垒主机为它接触的每个主机重新建立连接?

谢谢!

configuration-management two-factor ansible bastion

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

通过中间主机的 SSH 仅在 myuser@mymac 上失败,但在其他地方有效

我无法在我的 macbook 上使用我的用户通过 ssh 连接到我的数据中心节点之一。这是最近出现的问题,从几周前开始就非常有用了。

奇怪的是,这只会影响我计算机上的用户,但我能够从以下位置建立连接:

  • 同一台机器上的不同用户,使用相同的 ssh 密钥并且没有任何 .ssh/config 规则。
  • 不同的服务器,运行 macos 或 ubuntu,具有相同或不同的 ssh 密钥。

在我的计算机上使用我的用户名和相同的密钥,我可以:

  • 连接网关主机
  • 使用 VPN 直接连接到节点(不幸的是,这不是一个长期的解决方案)

我对这个错误感到很困惑。你能帮我定位问题吗?

查看日志,与网关的连接已建立,但无法连接到节点。在客户端:

? ~ ? ssh -v -J gatekeeper@gateway ubuntu@node -i ~/.ssh/id_rsa 
OpenSSH_7.3p1, LibreSSL 2.4.1
[...]
debug1: Authentication succeeded (publickey).
Authenticated to gateway ([35.156.248.245]:22).
debug1: channel_connect_stdio_fwd node:22
debug1: channel 0: new [stdio-forward]
debug1: getpeername failed: Bad file descriptor
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype keepalive@openssh.com want_reply 1
debug1: client_input_global_request: rtype keepalive@openssh.com …
Run Code Online (Sandbox Code Playgroud)

ubuntu ssh mac-osx bastion

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

使用代理跳转时无法禁用 SSH 主机密钥检查

我正在尝试通过 jumpbox 进行 SSH,但 SSH 似乎有意检查 jumpbox 的主机密钥,即使我告诉它不要使用普通-o StrictHostKeyChecking=no -o UserKnownHostsFile=no命令行选项。

如果我直接通过 SSH 连接到 jumpbox,我可以让 SSH 按预期忽略错误:

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_jumpuser_rsa jumpuser@jumpbox
Run Code Online (Sandbox Code Playgroud)

但是,如果我添加代理跳转选项,我突然收到错误消息。错误不是来自 jumpbox 在 jumpbox 上的任何 .ssh 目录中没有 known_hosts 文件,我也没有以 jumpuser 身份登录:

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_jumpuser_rsa -J jumpuser@jumpbox jumpuser@10.10.0.5
Run Code Online (Sandbox Code Playgroud)

错误信息:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is …
Run Code Online (Sandbox Code Playgroud)

ssh hostkey bastion

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

通过堡垒ssh-keyscan

我有一些测试服务器在 Openstack 上的堡垒后面运行。测试堆栈经常被删除和创建。创建堆栈后,我运行一组 Ansible 脚本来安装和配置服务器。我的过程几乎完全自动化,但是ssh-keyscan当远程主机在堡垒主机后面时,我似乎无法开始工作。

这就是我在我的 ~/.ssh/config

Host bastion
  HostName 1.2.3.4
  User myuser
  IdentityFile ~/.ssh/private_key.pem

Host remote-host1
  HostName 192.168.0.123
  User myuser
  IdentityFile ~/.ssh/private_key.pem
  ProxyCommand ssh -W %h:%p bastion
Run Code Online (Sandbox Code Playgroud)

如果我尝试跑步,ssh-keyscan remote-host1我会得到

getaddrinfo remote-host1: Name or service not known
Run Code Online (Sandbox Code Playgroud)

运行ssh remote-host1有效,但会提示

The authenticity of host '192.168.0.123 (<no hostip for proxy command>)' can't be established.
ECDSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?
Run Code Online (Sandbox Code Playgroud)

我试图避免。

我知道有一个 SSH 选项-o StrictHostKeyChecking=no,可以使用ssh_args …

ssh ansible bastion

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

GCP:通过代理在私有集群上运行 kubectl exec

我有一个带有私有 IP 的私有 kubernetes 集群。为了访问它,我设置了一个带有鱿鱼代理的堡垒主机。它看起来像这样:

My host -> bastion -> private cloud
Run Code Online (Sandbox Code Playgroud)

常规 kubectl 命令可以按预期抛出代理:

$ HTTPS_PROXY=socks5://127.0.0.1:1080 kubectl get pods 
No resources found.
Run Code Online (Sandbox Code Playgroud)

问题是当尝试 ssh 到 pod 时:

$ HTTPS_PROXY=socks5://127.0.0.1:1080 kubectl exec -it "some-pod" -- /bin/bash
error: error sending request: Post https://<master-ip>/api/v1/namespaces/ns/pods/some-pod/exec?command=%2Fbin%2Fbash&container=xxx&container=xxx&stdin=true&stdout=true&tty=true: EOF
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

proxy bastion google-kubernetes-engine

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

通过 ssh 网关连接到 RabbitMQ (Amqp)

我有以下情况: DevMachine (D) need to connect to a gateway/bastion server (G) and then be able to talk to another server serving RabbitMQ (R) traffic on port 5672.

我尝试使用 ssh 隧道连接到网关:ssh -L 5672:localhost:5672 G接下来我希望网关实例让我连接到R5672。我该如何实现这一点?我觉得我在这里错过了一步。

我想要的是:D ->G -> R。我得到的是D ->G. 如果我有一个本地运行的rabbitmq实例G——这可以工作,但我想要的是本质上用作GVPN。

谢谢!

vpn ssh port-forwarding bastion

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

我们可以使用 Linux Bastion Server 连接到 AWS 私有子网中的 Windows 实例吗?

我有一个 Windows 本地桌面并安装了 Putty。现在我想知道 - 在 AWS 设置中,我们是否可以使用 Linux Bastion 主机通过代理转发连接到私有子网中的 Windows Ec2 实例?

linux windows amazon-web-services bastion

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

限制每用户传出 SSH

我有一台我管理的服务器。它可以通过端口 22 访问许多机器。我想将它用作某些用户的堡垒主机。问题是我希望我服务器上的每个用户都有自己的 IP/地址白名单,它可以通过 SSH 连接到。

例如,假设我的机器 M 可以访问服务器 S1、S2、S3、... S8。我在机器 M 上有 3 个用户,A、B 和 C。我希望 A 只能通过 SSH 连接到 S2,B 只能通过 SSH 连接到 S1、S5 和 S6,而 C 能够通过 SSH 连接到 S2 、S3、S4、S5 和 S8。

我该如何实现?

linux ssh bastion

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