Tôi có ba máy tính HOME, WORK và SERVER và tôi được kết nối từ HOME đến SERVER bằng cách:
ssh -t <WORKusername>@<WORK> ssh -p23456 <SERVERusername>@localhost
Tôi cần chuyển tệp từ HOME sang SERVER nhưng tôi không thể để tệp trong CÔNG VIỆC
Ngoài ra tôi sẽ cần phải chuyển một tập tin từ SERVER sang HOME sau khi xử lý nó, làm thế nào để tôi làm điều đó?
Tôi đã xem https://serverfault.com/questions/37629/how-do-i-do-multihop-scp-translike và scp giữa hai máy chủ từ xa từ máy tính của tôi (thứ ba) nhưng tôi không thể thay đổi ssh cấu hình trên CHỦ máy
Và tôi đã thử điều này nhưng tôi không nhận được:
$ scp -o ProxyCommand="ssh <WORKusername>@<WORK> nc localhost" ASPEC.zip <SERVERusername>@localhost:~/
<WORKusername>@<WORK>'s password:
This is nc from the netcat-openbsd package. An alternative nc is available
in the netcat-traditional package.
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-P proxy_username] [-p source_port]
[-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol]
[-x proxy_address[:port]] [hostname] [port[s]]
ssh_exchange_identification: Connection closed by remote host
lost connection
Tôi cũng đã thử các cách sau nhưng đây là cách ngược lại để chuyển tệp từ SERVER -> HOME:
ssh -t <WORKusername>@<WORK> "ssh -p 23456 <SERVERusername>@localhost \"cat file.zip\""
Tôi cũng đã thử tar nhưng nó không hoạt động:
tar c file.zip | ssh -t <WORKusername>@<WORK> "ssh -p 23456 <SERVERusername>@localhost | tar x"
Pseudo-terminal will not be allocated because stdin is not a terminal.
<WORKusername>@<WORK>'s password:
Pseudo-terminal will not be allocated because stdin is not a terminal.
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
Sau đó tôi đã thử:
# From home:
$ ssh -L 23456:<SERVERusername>@localhost:22 <WORKusername>@<WORK>
# After ssh, in WORK:
$ ssh -p 23456 <SERVERusername>@localhost
# From home:
$ scp -P file.zip <SERVERusername>@localhost:~/
Và tôi đã nhận được những lỗi này khi tôi đưa ra lệnh scp,
# on WORK terminal:
channel 3: open failed: administratively prohibited: open failed
# on SERVER terminal:
ssh_exchange_identification: Connection closed by remote host
lost connection
Tôi cũng đã thử rsync nhưng nó không hoạt động:
rsync -e "ssh -A -t <WORKusername>@<WORK>e ssh -p23456 <SERVERusername>@localhost" file.zip :~/
Làm cách nào tôi có thể scp từ HOME để chuyển tệp sang SERVER?
Và cũng từ SERVER đến HOME?
scp <localfile> <workusername>@<work>:/tmp/<filename> && ssh -t <WORKusername>@<WORK> scp -P23456 /tmp/<filename> <serveruser>@localhost:/<somedirectoryontheserver>
Vì vậy, trước tiên bạn hãy đưa nó vào công việc của bạn và sau đó bạn đưa (thông qua ssh) lệnh cho máy tính làm việc của bạn để đưa nó tới máy chủ. Nó đánh đố tôi mặc dù tại sao bạn kết nối với máy chủ qua localhost. Là một máy chủ ảo trên máy tính làm việc của bạn? Nếu nó hoạt động tôi sẽ chuyển nó vào phần trả lời.