遠端伺服器 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。糾正這個錯誤解決了問題。

相關內容