我有 ubuntu 17.10,我正在尝试设置容器,以便人们可以从我的网络外部 ssh 进入。我尝试安装 LXD 容器,并让一个朋友尝试 ssh 进入它,但它说连接被拒绝。如果有更好的方法,我愿意更换软件。
答案1
我编写了一个网关/跳转脚本,允许传入的 ssh 连接被路由到特定的 LXD 容器:https://github.com/Dweller/lxd-ssh-gateway
来自项目的自述文件:
将单个用户的传入 ssh 连接转发到容器中
非常简单的例子,阐明了这个概念。
我对 /etc/ssh/sshd_config 的 LXD 主机配置的建议是:-
PasswordAuthentication no PermitUserEnvironment yes
然后在您的 Linux 服务器上添加一个“沙盒”用户...
然后安装 ~sandbox/bin/gw、~sandbox/etc/notice 和 ~sandbox/.ssh/authorised_keys 此方法的限制是密钥只能用于转发到单个容器。请参阅 authorized_keys.example 了解 command="$HOME/bin/gw ssh-rsa 语法。
确保权限/所有权正确。
#chown -R sandbox:sandbow ~sandbow #chmod -R g-rewx,o-rwx ~ssandbox/bin
我一直在构建的容器是 Ubuntu 20.10,它们不需要运行 ssh 即可工作,也不需要网络。
例如
#lxc launch ubuntu:20.10 container-X
假设所有安装和运行都已完成,下面是一些使用示例:-
ssh -i ~/.ssh/priv.key sandbox@<host address/ip> sftp -i ~/.ssh/priv.key sandbox@<host address/ip> scp -i ~/.ssh/priv.key /etc/hosts sandbox@<host address/ip>: