我見過這個問題的許多變體,但我認為沒有任何東西適合我的具體情況。
我在工作時使用一台透過 SSH 連接到伺服器的電腦。在這台伺服器上時,我想從家裡的 Mac 上 SCP 一些檔案。
我可以透過 SSH 從伺服器連接到我的 Mac,使用正常命令沒有問題:
ssh [email protected]
然而,當我嘗試 SCP 時,我得到:-bash: /usr/bin/scp: 權限被拒絕
我正在使用命令:
scp [email protected]:/absolute/filepath/i* local/folder
我也嘗試過 number -p 標誌。我的 Mac 上只有一個帳戶,它是管理帳戶。我不確定是否存在權限問題,或者是因為我透過 SSH 連接到伺服器還是其他原因。
當我在家中的 Mac 上執行此操作時,我還能夠成功從伺服器到我的 Mac 進行 SCP。
有什麼建議麼?
編輯:其他相關資訊最初是作為評論發布,因為我對協議有一個腦放屁。 (我的錯)。
特別與我關於能夠「反轉」SCP 的最後一句話相關:當我作為本機登入我的 Mac 時,以下命令有效:
scp -P 22003 [email protected]:Data/path/i* /Full/Path/On/Mac/
ls -l /usr/bin/scp
在伺服器(本地)上運行返回以下內容:
rwxr-x---。 1 root root 67648 八月 31 12:40 /usr/bin/scp
ls -l /usr/bin/scp
在 Mac(遠端)上運行將返回以下內容:
-rwxr-xr-x 1 根輪 81360 12 月 1 日 14:45 /usr/bin/scp
答案1
上面的命令失敗並出現指定的錯誤,但當我作為本機登入 Mac 時,以下命令有效:
scp -P 22003 [email protected]:Data/path/i* /Full/Path/On/Mac/
因此,您無法從伺服器訪問,/usr/bin/scp
您會收到“訪問被拒絕”錯誤。導致此類錯誤的原因可能有很多,例如檔案權限。
由於您可以scp
從 Mac 上進行操作,也可以ssh
從伺服器到 Mac 上進行操作,所以我認為這就是您目前應該做的。ssh
進入 Mac 並scp
從那裡。
要解決伺服器上的問題,請先檢查您是否在/usr/bin/scp
伺服器上具有執行權限:
ls -l /usr/bin/scp
你會看到類似的東西:
-rwxr-xr-x 1 root root 84104 Jan 16 14:28 /usr/bin/scp
^ ^ ^
基本上,該檔案由使用者擁有root
(具有讀取、寫入、執行功能),群組成員root
具有讀取和執行權限,而世界也是如此(其他所有人都已登入)
如果您x
在命令上有(執行)privs,則使用scp -v
它可以增加詳細程度(您可以添加更多v
,最多三個,iirc),您可能會看到一條訊息,告訴您出了什麼問題。您也可以嘗試ldd /usr/bin/scp
查看所有依賴項是否都存在並且可讀。