Linux

更改 Linux 中的預設 SCP 命令標誌

  • August 9, 2018

我正在嘗試使用非常基本的scp命令將文件從本地系統上的虛擬機(Ubuntu 18.04)移動到遠端伺服器。這個問題只出現在一個特定的伺服器上,其他的工作正常,所以它不是一個通用的東西。

scp <file name> <user>@<complete_hostname>:~/

但是此命令不會繼續進行成功的身份驗證。

當我使用 FileZilla 時也會發生同樣的情況。

IT 團隊建議我使用執行良好的“WinSCP”。

scp 調試日誌

debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/username/.ssh/id_dsa
debug1: Trying private key: /home/username/.ssh/id_ecdsa
debug1: Next authentication method: password
'user'@'full hostname's password: 
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = C
debug1: Sending env LC_ALL = C
debug1: Sending command: scp -v -t ~/

此後沒有任何進展,FileZilla 以類似方式在 20 秒後超時。而 WinSCP 工作正常。

什麼可能導致scp掛起,因為我在我的一些腳本中使用它,一個特定伺服器的這個問題使我的腳本在它們上無法使用,這也適用於 SFTP 方法。

IT 團隊建議我不要使用這些標誌-d,並且-t在發出命令時,調試日誌中會顯示相同的命令,並且不受遠端伺服器的支持。這些可以去掉嗎?我沒有明確地向他們發出命令。

編輯2:

SCP Log: (from local machine, Ubuntu 18.04)
==========
debug1: Next authentication method: publickey
debug1: Offering public key: 
RSA SHA256:<key> /home/username/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279 
debug1: Authentication succeeded (publickey).
Authenticated to 'HOSTNAME' ([10.6.26.145]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: Sending environment.
debug1: Sending env LANG = en_IN
debug1: Sending command: scp -v -r -d -t ~/received/

事實證明,這是一個阻止傳輸的防火牆。原因是我的預設 shell 的**.*rc文件的文件權限。.cshrc**在這種情況下。

我的預設 shell 是 csh,文件權限是

-rwxr-s---

將這些更改為

-rw-r-----

解決了這個問題。

謝謝大家的幫助。

IT 團隊建議我不要使用這些標誌-d,並且-t在發出命令時,調試日誌中會顯示相同的命令,並且不受遠端伺服器的支持。這些可以去掉嗎?我沒有明確地向他們發出命令。

-t- 這完全是胡說八道。SCP 協議不能在沒有-t標誌的情況下工作。請參閱SCP(安全複製協議)文件傳輸如何工作?

-d- 當您指定多個來源時使用它。它向伺服器指示“目標應該是目錄”。

在這兩種情況下,我都懷疑伺服器不支持其中任何一種。由於它是 Ubuntu,它以 99.9% 的確定性執行 OpenSSH。OpenSSH 自從存在以來就支持這些標誌。見scp.c1999 年


我很確定你得到的建議只是一派胡言。“ *IT 團隊”*可能只是沒有在scp手冊頁中找到這些開關,並且找到了真正幫助您的簡單方法。scp但是這些標誌是用於在“客戶端”和scp“伺服器”之間進行通信的內部標誌。它們沒有按目的記錄。

FileZilla 甚至不支持 SCP 協議。*僅對上述有貢獻-您的問題與任何“scp標誌”*無關。

引用自:https://serverfault.com/questions/925050