linux 在一个账户(jerry)下突然用不了 ssh,会报错。如 ssh
报:
ssh: symbol lookup error: ssh: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b
但在同一台机、另一个账户(tom)下,ssh 正常。根据 ChatGPT 提示:
The user-specific environment variables might be pointing to an incorrect OpenSSL library version. Check the environment variables, especially LD_LIBRARY_PATH.
If this variable is set, it might be overriding the system default libraries. Compare the environment variables between the working and non-working accounts.
可能是设置了 LD_LIBRARY_PATH
变量的值,指向错误版本的 openssl 库。检查:echo $LD_LIBRARY_PATH
,得:
/home/jerry/miniconda3/envs/cu116_pt1131/lib
这是我在 ~/.bashrc 中自己加入的,是 conda 一个虚拟环境的库路径,之前跑代码遇到 bug 需如此解决。用 unset LD_LIBRARY_PATH
清除,ssh 就正常了。
然而,在 ssh 正常的账户 tom 下检查 LD_LIBRARY_PATH
发现也同样放了虚拟环境的库路径(因为都是我在用,用同样方法配的环境、写一样的 ~/.bashrc):
/home/tom/miniconda3/envs/cu116_pt1131/lib
回想最近涉及此虚拟环境的操作,惟一的分别在于:
- 昨晚在 jerry 那用 conda 装了个 tensorflow(
conda install tensorflow
)供 tensorboard_logger 包调用;conda 一顿操作,改了很多此虚拟环境的包版本,tensorflow 是 2.12.0。 - 而 tom 下的环境的 tensorflow 是以前装的,版本是 2.15.0(以前装的版本反而更新…可能当时是 pip 装的?不记得)
配环境是这样的。pip 只要装完相关的几个包就可以,可是 conda 要考虑的事情就很多了。