이것이 가능합니까, 아니면 openssh에 버그가 있습니까?
나컴파일러에 문제가 있습니다., 컴파일러 개발자가 결과를 복제할 수 있도록 원격 서버를 만들었습니다. 이상한 점은 동일한 원격 컴퓨터에서 동일한 사용자로 동일한 명령을 실행하면 그 결과와 다른 결과가 나온다는 것입니다. 이 문제의 원인은 무엇입니까?
간단히 말해서, ssh root@remote_machine 'command'
원격 컴퓨터가 동일하더라도 다른 사람이 명령을 성공적으로 실행하는 동안 나는 실행할 때 실패합니다. 정말 당황스럽네요. 어떻게 이런 일이 일어날 수 있었을까요?
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
일부 환경 변수를 클라이언트에서 호스트( 클라이언트 측 ssh
, AcceptEnv
서버 측 sshd
) 로 전송하는 옵션이 있습니다 . 클라이언트에 있는 일부 환경 변수가 서버로 전송되어 이 문제를 일으킬 수 있지만 다른 사용자는 그렇지 않거나 에서 다른 구성을 가지고 있을 수 있습니다 ssh_config
.
ssh
귀하와 다른 사용자 간의 환경을 비교해야 합니다.
ssh root@remote_machine 'env'
내 생각에는 다른 결과에 영향을 미칠 수 있는 몇 가지 차이점을 보게 될 것입니다.