gpt4 book ai didi

windows - Plink 在连接时不提供 bashrc 或 bash_profile

转载 作者:IT王子 更新时间:2023-10-28 23:59:13 25 4
gpt4 key购买 nike

我正尝试在 Windows 上使用 plink 作为 ssh 的替代方案,但我发现当 plink 连接到远程 linux 机器时,它不会获取 .bash_profile 或 .bashrc。
我应该创建一个不同的点文件吗?或者有其他选择吗?

例如,我的 bashrc 文件在我的路径中添加了一个目录。该目录包含我想使用的额外程序,其中一个是 python。

这行不通:

plink host python

哪里会这样:

plink host "source .bashrc;python"

当我使用不带命令参数的 plink 时,它会获取 .bash_profile 并且一切正常,但看起来仅通过发送命令 plink 不会获取任何一个文件。

有解决办法吗?

最佳答案

接受的答案帮助我使用 plink 解决了同样的问题。下面是一些可能对 future 的人有所帮助的细节:

当建立 ssh 连接以使用 plink 运行单个命令时,bash 不会作为“交互式登录 shell”调用,因此它不会运行/etc/profile、~/.bash_profile、~/.bash_login、或 ~/.profile(参见 bash 手册页)。

出于我的目的,我需要在 plink 命令行中传递命令之前运行 ~/.profile。

可以将强制命令添加到该 key 的 authorized_keys 文件中(请参阅 sshd 手册页)。强制命令(例如运行 ~/.profile)会阻止它运行 plink 指定的命令,因此要让它同时执行这两项操作,强制命令应该先执行运行 .profile 的脚本,然后再执行原始 plink 命令。后者存储在环境变量 $SSH_ORIGINAL_COMMAND 中,因此您的脚本可以执行

source .profile
$SSH_ORIGINAL_COMMAND

然后您在 ~/.ssh/authorized_keys 文件中指定脚本,如下所示,在同一行的 key 之前:

command="source forced_command.script" ssh-rsa A3AABzaC1yc...

关于windows - Plink 在连接时不提供 bashrc 或 bash_profile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3407386/

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