Windows Plink不在connect上提供bashrc或bash_配置文件
我试图在windows上使用plink作为ssh替代方案,但我发现,当plink连接到远程linux计算机时,它并没有源.bash_profile或.bashrc。Windows Plink不在connect上提供bashrc或bash_配置文件,windows,linux,ssh,plink,Windows,Linux,Ssh,Plink,我试图在windows上使用plink作为ssh替代方案,但我发现,当plink连接到远程linux计算机时,它并没有源.bash_profile或.bashrc。 我应该创建一个不同的点文件吗?还是有其他选择 例如,我的bashrc文件将一个目录添加到我的路径中。这个目录包含我想要使用的额外程序,一个是python 这是行不通的: plink host python 其中: plink host "source .bashrc;python" 当我在没有命令参数的情况下使用plink时,它
我应该创建一个不同的点文件吗?还是有其他选择 例如,我的bashrc文件将一个目录添加到我的路径中。这个目录包含我想要使用的额外程序,一个是python 这是行不通的:
plink host python
其中:
plink host "source .bashrc;python"
当我在没有命令参数的情况下使用plink时,它会生成.bash_profile文件,一切正常,但仅仅发送命令plink似乎不会生成这两个文件
有解决方法吗?如果您只是通过ssh或plink连接到远程主机,它将启动登录帐户的默认shell。如果该shell是bash,bash将自动生成.bash\u概要文件 如果您通过ssh或plink连接到远程主机,请求执行命令,ssh将尝试仅执行该命令 您想要实现的目标可以通过使用强制命令来实现。另见此处:
- 及
被接受的答案帮助我用plink解决了同样的问题。 下面是一个更详细的信息,可能会在将来帮助人们: 当ssh连接使用plink运行单个命令时,bash不会作为“交互式登录shell”调用,因此它不会运行/etc/profile、~/.bash\u profile、~/.bash\u login或~/.profile(请参阅bash手册页面) 出于我的目的,我需要在plink命令行中传递命令之前运行~/.profile 可以将强制命令添加到该密钥的授权密钥文件中(请参阅sshd手册页面)。强制命令(例如,运行~/.profile)会停止它运行plink指定的命令,因此为了让它同时执行这两个命令,强制命令应该是执行一个运行.profile的脚本,然后是原始plink命令。后者存储在环境变量$SSH\u ORIGINAL\u命令中,因此脚本可以执行以下操作
source .profile
$SSH_ORIGINAL_COMMAND
在~/.ssh/authorized_keys文件中指定脚本,如下所示,在密钥之前,在同一行上:
command="source forced_command.script" ssh-rsa A3AABzaC1yc...
我想知道为什么创建一个shell脚本来复制bash_profile调用,然后运行您希望plink调用的任何命令并不容易,直到我意识到这个答案“教会所有plink命令如何钓鱼”,可以这么说,对吗?也就是说,如果每次运行相同的命令,则.sh路由更容易,但每个命令或命令批都需要.sh,而这可以全面解决缺少的概要文件。