gpt4 book ai didi

linux - 在 Linux 上,如何仅通过 SSH 连接为 session 共享脚本?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:20 24 4
gpt4 key购买 nike

为了工作,我必须通过 SSH 连接到几十台 Linux 机器(以执行维护、监控系统、安装软件等)。

我有一小部分脚本可以帮助我完成其中的一些任务,它们位于我 Mac 上的一个文件夹中,位于/Users/me/bin 中。我希望能够在远程 Linux 机器上运行这些脚本,但出于多种原因我不希望这些脚本永久位于这些机器上(例如,其他人也连接到这些远程机器,让他们这样做是不明智的执行这些文件)。

那么,是否可以仅在 session 的生命周期内通过 SSH 连接共享脚本?

我有几个关于如何执行此操作的想法,但我不知道它们是否可行。首先,如果 SSH 允许挂载文件,当我连接到远程 Linux 机器时,我可以自动将 me@mymac:/Users/me/bin 挂载到 me@linux:/remote_bin,并将我的 PATH 变量设置为 "$PATH:/remote_bin ”。其次,我可以在连接字符串中设置端口转发(例如 ssh me@linux -R 9999:127.0.0.1:<SMBPORT|ETC> 并且每次我连接时挂载共享并设置 $PATH 变量。

编辑:我想出了一个半解决方案。在 linux 机器上,编辑 /etc/ssh/sshd_config添加以下子系统:Subsystem shareduserbinary sudo su -l -c "/bin/mount -t cifs -o port=9999,username=me,nounix,sec=ntlmssp //127.0.0.1/exported_bin /mnt/remote_bin" && bash -l -i -s .连接到远程机器时,设置反向端口转发并调用子系统。例如:ssh -R 9999:127.0.0.1:445 -s shareduserbinary me@linux .

编辑 2:您可以通过删除 -l 使上述解决方案更清晰来自 sudo命令并从 /mnt/remote_bin 更改路径至 $HOME/rbin .

最佳答案

有趣的问题。也许您可以在登录时向 ~/.bash_login 添加命令(假设您使用的是 bash)以从远程主机(例如您的 mac)复制脚本,然后在登录时向 ~/.bash_logout 添加命令以删除脚本你注销。但是,正如 bmargulies 指出的那样,进一步确保没有其他人有权读取或执行脚本是个好主意。

关于linux - 在 Linux 上,如何仅通过 SSH 连接为 session 共享脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23418756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com