docker下xserver图形界面转发以及ssh登录流程

docker下xserver图形界面转发以及ssh登录流程

目前有两台服务器和一个容器:

服务器A:本地主机,192.168.2.202

服务器B:远程服务器,192.168.2.246

容器C,创建于3服务器B上,从A不能直接登录C

需求

期望从A直接ssh登录C,并且实现xserver转发配置:

ssh -X uername@192.168.1.xxx -p xxxx

操作流程

登录B,创建初始容器C:

docker run -it -p 50001:22 --name xxx imageid

登录容器C后,安装openssh:

apt-get install openssh-server

修改容器C的sshd_config,确保下列选项被正确配置:

Port 22

PermitRootLogin yes

ChallengeResponseAuthentication no

UsePAM yes

X11Forwarding yes

X11UseLocalhost no

其中X11UseLocalhost no非常重要,其他大部分是默认项,该项为了避免出现回环转发

启动ssh

/etc/init.d/ssh start

修改root用户密码

passwd

提交容器到镜像,然后从新的镜像重新启动

docker run -it -p 50001:22 --name xxx imageid /usr/sbin/sshd -D

服务器A登录容器C

ssh -X root@192.168.2.246 -p 50001

其中50001是第一步中的服务器B上的端口映射,作用是把容器的22端口映射到B的50001端口, 当从A上ssh root@192.168.2.246 -p 50001时,实际是转发到了容器C的22端口上。

注意

  • 创建容器的时候必须加/usr/sbin/sshd -D, 这样才能启动ssh并且容器不会自动退出;

  • -p 50001:22的目的是映射B的50001端口到容器的22端口,因此所有ssh到B上50001的链接都会转发到22, 所以从A,ssh到B的50001端口,会登录到C的22端口。

  • X11UseLocalhost no 这个选项默认是注释掉的,必须打开

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@daviiid

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值