相同的 ssh 命令为不同的本地计算机提供不同的结果

相同的 ssh 命令为不同的本地计算机提供不同的结果

这是否可能,或者 openssh 是否存在错误?

编译器有问题,并允许编译器的开发人员复制结果,我创建了一个远程服务器。疯狂的是我在同一台远程计算机上使用同一用户运行相同的命令导致了与他不同的输出。这可能是什么原因造成的?

简而言之,我在运行时失败ssh root@remote_machine 'command',而另一个人成功运行命令,即使remote_machine是相同的。这实在是太令人费解了,怎么会这样呢?

ssh当我在会话中交互运行此命令时也会发生这种情况。

当我从本地计算机运行它时,它失败:

[efe@efeninki ~]$ ssh [email protected]
[email protected]'s password:

[root@vultr ~]# cd test/
[root@vultr test]# ls
Address.sol  solc-linux-amd64-v0.8.10+commit.fc410830  test.sh
[root@vultr test]# ./solc-linux-amd64-v0.8.10+commit.fc410830 --bin Address.sol
Error: Function "extcodesize" not found.
  --> Address.sol:34:21:
   |
34 |             size := extcodesize(account)
   |                     ^^^^^^^^^^^

Error: Variable count for assignment to "size" does not match number of values (1 vs. 0)
  --> Address.sol:34:13:
   |
34 |             size := extcodesize(account)
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

当其他用户从docker实例运行它时,它会成功:

[efe@efeninki ~]$ sudo docker run -it --rm ubuntu bash
root@437d7edb92fc:/# ssh [email protected]
[email protected]'s password:

[root@vultr ~]# cd test/
[root@vultr test]# ls
Address.sol  solc-linux-amd64-v0.8.10+commit.fc410830  test.sh
[root@vultr test]# ./solc-linux-amd64-v0.8.10+commit.fc410830 --bin Address.sol

======= Address.sol:Address =======
Binary:
60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ebf580f669e9f89d1faea352d4ba1d4ab2d9c9774fda9fb483588d4e9b09eb5564736f6c634300080a0033

答案1

ssh可以选择将一些环境变量从客户端传输到主机(SendEnv在客户端sshAcceptEnv在服务器端sshd)。可能是您在客户端拥有的某些环境变量被传输到服务器,从而导致此问题,而其他用户则没有(或者在他的 中具有不同的配置ssh_config)。

ssh您应该比较您和其他用户之间的环境:

ssh root@remote_machine 'env'

我的猜测是,您会看到一些可能影响不同结果的差异。

相关内容