無法透過共享連線進行 scp

無法透過共享連線進行 scp

我在使用 SSH 共享連線時遇到以下問題:

# Set up a shared connection
ssh -f -N -M -S "$SSH_CONTROL_SOCKET" root@"$ONE_HOST"

# I can scp *without* the shared connection
scp root@"$ONE_HOST":/etc/hosts /dev/null

# I can execute a remote command *with* the shared connection
ssh -S "$SSH_CONTROL_SOCKET" root@"$ONE_HOST" "date"

# But I can't scp *with* the shared connection
scp -vvv -S "$SSH_CONTROL_SOCKET" root@"$ONE_HOST":/etc/hosts .

此腳本給出以下輸出:

hosts                                                              100%   59    67.8KB/s   00:00
Wed Feb 28 08:23:10 MST 2018
Executing: program /home/myUser/ssh_sharing_socket host myHost.example.com, user root, command scp -v -f /etc/hosts
/home/myUser/ssh_sharing_socket: Permission denied

我的 SSH 共享連接是使用公鑰和 SSH 代理進行身份驗證的。

我必須做什麼才能透過共享連線進行 scp?

答案1

ssh並將scp-S選項用於不同的目的。

ssh:

-Sctl_path
指定用於連接共享的控制套接字的位置,或字串「none」以停用連接共享。具體參考ssh_config(5)中ControlPath和ControlMaster的說明。

scp:

-S程式
用於加密連線的程式名稱。該程式必須理解 ssh(1) 選項。

您收到錯誤“權限被拒絕”,因為scp正在嘗試將控制套接字作為程式運行。

對於 scp,您應該使用該選項-o ControlPath=/path/to/socket:

scp -vvv -o "ControlPath=$SSH_CONTROL_SOCKET" root@"$ONE_HOST":/etc/hosts .

相關內容