远程服务器 scp 的问题

远程服务器 scp 的问题

我对装有 Debian linux 的远程计算机具有管理员访问权限。起初一切都很顺利。我尝试全局定义一些变量,以便所有用户都可以运行特定的代码。现在我无法将文件发送到该服务器。当我运行 scp 命令时它说:

bash: scp: command not found
lost connection

scp在我的本地电脑和服务器上都可用。我可以使用 ssh 连接到远程计算机。但当我连接时它说:

-bash: id: command not found
-bash: [: : integer expression expected

但是当我运行这个命令时:

which id

输出是:

/usr/bin/id

我认为基本代码的路径是为系统定义的。远程计算机还知道传递给 scp 的信息以及输出为which scp

/usr/bin/scp

我只记得我所做的就是创建一个文件,/etc/profile.d然后删除该文件。我还检查并确定~/.bashrc~/.profile和中没有错误的 PATH 规范/etc/profile

有人知道远程计算机出了什么问题吗?

答案1

您可以使用以下命令来检查用户是否scp有权访问命令:

echo $PATH

输出示例:

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin

这将显示用户有权访问的命令路径。

假设如果您正在检查scp命令,scp命令将位于/usr/bin/.如果 的输出echo $PATH不包含/usr/bin/,则显示消息“未找到命令”。

要解决该问题,请执行

export PATH=$PATH:/usr/bin/

对于永久更改,将上述内容添加到您的.bash_profile

答案2

.bashrc您的文件中有错误。使用以下命令恢复默认版本,然后重新连接。

$ cp /etc/skel/.bashrc ~/

答案3

问题解决了。我在 . 中添加了错误的 PATH 定义/etc/environment。纠正这个错误解决了问题。

相关内容