我想通过 SSH 通过 Proxmox 连接到 LXC 容器,而无需通过 SSH 访问容器本身,因此我可以通过先连接到 Proxmox 主机然后运行lxc-attach <ID>
连接到我的容器来获得所需的结果。
现在我想一次性完成这件事。为此,我的 rc 文件中有一个函数:
sshc() { ssh $1 "lxc-attach $2; bash -i" }
它有效,但在终端中它看起来像这样:
这应该看起来不同,即:
root@root1543:~# lxc-attach 1111
root@container:~# pwd
/root
root@container:~#
我想在当前 shell 中查看用户和主机,但在我的解决方案中没有看到。
我还考虑过更改 SSH 配置中的 RemoteCommand,但显然,不可能将参数传递到 RemoteCommand 中,因此我放弃了该尝试。
答案1
将“-t”选项添加到您的ssh
调用中:
sshc() { ssh -t $1 "lxc-attach $2; bash -i" }
当ssh
使用在远程系统上运行的命令调用时,默认情况下它不会为会话分配 TTY。添加“-t”告诉 ssh 为会话请求 TTY。
交互式会话通常通过 TTY 进行操作,以提供某些功能,例如使用退格键编辑您键入的内容的能力。您的 shell 还使用 TTY 的存在来确定是否进行交互操作,例如通过打印命令行提示符。