我正在具有 root 權限的 VM (ESXi) 上執行 CentOS Server 7。我有一個 bash 腳本(在我的 /etc/profile.d/ 目錄中),該腳本在登入後立即執行。在我在目錄中建立 .sh 檔案之前,透過 WinSCP 連接到我的 VM 沒有問題。建立檔案並重新啟動系統後,我無法再連線。 OpenSSH 已安裝.. 似乎 bash 執行阻止了連接.. 如果我之後透過控制台刪除我的 .sh 文件,則會再次建立連接。這是 CentOS 的問題嗎?在 Ubuntu Server 下從來沒有遇到過這個問題。
我收到的錯誤:
無法初始化 SFTP 協定。主機是否運行 SFTP 伺服器?
有任何想法嗎?先感謝您!
答案1
您沒有向我們展示您的腳本,因此這顯然有些猜測;但很可能您的腳本不應該出現,profile.d
因為它需要某種用戶互動。
此設定檔應專門保留用於即使在非互動式會話中也需要運行的內容。
互動功能的正確位置可能根本不在您的登入腳本中,但是像這樣的東西$HOME/.bash_profile
至少可以避免對非互動會話產生損害。
case $- in *i*) invoke your script here;; esac
如果您.bash_profile
已經有了,它很可能已經包含一個case $-
您可以修改的聲明,而不是添加第二個聲明。