首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向码头容器转发透明ssh连接

向码头容器转发透明ssh连接
EN

Stack Overflow用户
提问于 2017-07-12 16:30:00
回答 2查看 1.4K关注 0票数 3

我希望有一个服务器可以透明地将传入的ssh连接从客户端转发到码头容器。这应该包括scp、git传输等等。这必须与密钥一起工作,密码被停用。用户不应该看到服务器。更新:是的,这实际上意味着用户将不知道有一个服务器。配置必须完全在服务器上进行!

代码语言:javascript
复制
client -----> server -----> container  (actual connection)
client -------------------> container  (what the user should see)

所以,我们给出的是:

代码语言:javascript
复制
user@client$ ssh user@server
user@server$ ssh -p 42 user@localhost
user@container$ 

但我想要的是:

代码语言:javascript
复制
user@client$ ssh user@server
user@container$ 

我尝试在command="ssh -p 42 user@localhost"文件中使用authorized_keys语法,但在第二个ssh连接中,用户必须输入他们的密码,因为身份验证没有通过( server没有user的私钥)。此外,即使输入密码,这种方法也不适用于scp

我也听说过tunnel=命令,但是我不知道如何设置它(而且这个命令不太有用)。

我在Arch上使用OpenSSH 7.5p1。

EN

回答 2

Stack Overflow用户

发布于 2017-07-12 17:37:42

将其放入您的~/.ssh/config文件:

代码语言:javascript
复制
Host server-container
  ProxyCommand ssh server -W localhost:42

然后简单地做:

代码语言:javascript
复制
ssh server-container

只要你的用户名是一致的。如果没有,您可以将它们指定为:

代码语言:javascript
复制
Host server-container
  ProxyCommand ssh server-user@server -W localhost:42

然后简单地做:

代码语言:javascript
复制
ssh container-user@server-container

作为奖励,您可以避免使用ssh使用docker exec进入容器。如下所示:

代码语言:javascript
复制
ssh -t server docker exec -it <container-id> bash
票数 1
EN

Stack Overflow用户

发布于 2017-07-13 12:23:03

这就是我现在想出的解决办法。我对第二个键有点不满意,因为它的公开部分在container~/.ssh/authorized_keys中是可见的,它轻微地破坏了透明度,但除此之外,所有其他事情似乎都有效。

代码语言:javascript
复制
user@server$ cat .ssh/authorized_keys
command="ssh  -q -p 42 user@localhost -- \"$SSH_ORIGINAL_COMMAND\"",no-X11-forwarding ssh-rsa <KEYSTRING_1>
user@server$ cat .ssh/id_rsa.pub
<KEYSTRING_2>
user@container$ cat .ssh/authorized_keys
ssh-rsa <KEYSTRING_2>

client授权使用他们的私钥来对抗server。然后,服务器使用专用密钥跳转到container,该密钥仅适用于特定的auth。我有点担心,您可以通过注入一些命令来摆脱command=,但到目前为止,我还没有发现允许出现的置换。

由于传递了$SSH_ORIGINAL_COMMAND,您甚至可以执行scpssh-copy-id等操作。

注意:为了不允许ssh-copy-id (因为其他原因我想要),只需在容器中使authorized_keys不能为user写。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45063164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档