SCP với hai cổng khác nhau


15

Làm cách nào tôi có thể sử dụng lệnh scp để sao chép tệp giữa hai máy chủ từ xa từ PC cục bộ của mình?

máy chủ từ xa 1: IP = 67.12,21.133 & port = 6774

máy chủ từ xa 2: IP = 67.129.242.40 & port = 6774

scp -rp -P 6774 denny@67.12.21.133: /home/denny/testapp1.txt denny@67.129.242.40:

Nó báo lỗi sau khi cung cấp mật khẩu 67.12,21.133,

ssh: kết nối với máy chủ 67.129.242.40 cổng 22: Kết nối bị từ chối

mất kết nối


Tôi cũng chỉ thử nghiệm điều đó, nhưng chỉ hoạt động cho máy chủ đầu tiên. Cái thứ hai bị khóa vào cổng 22.
gajdipajti

Câu trả lời:


19

Bạn có thể sử dụng ~/.ssh/configđể chỉ định các cổng sẽ sử dụng cho máy chủ (và để đặt nhiều thứ hay ho khác; kiểm tra trang man man ssh_config):

# ~/.ssh/config

Host 67.12.21.133
  Port 6774

Host 67.129.242.40
  Port 6774

Khi làm điều này, bạn phải sử dụng tùy chọn -3để scp, sao chép các tệp thông qua máy cục bộ của bạn. Mặt khác, scp phát lệnh scp qua ssh trên máy chủ đầu tiên, vì vậy nó thực sự chạy

 ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:

và sau đó ~ / .ssh / config của máy chủ từ xa đầu tiên (67.12.21.133) được sử dụng thay cho máy chủ cục bộ của bạn.

Khi bạn đã thiết lập ~/.ssh/configchính xác, điều này sẽ hoạt động:

scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:

Tất nhiên, bạn cũng có thể sao chép nội dung của tệp ~ / .ssh / config vào máy chủ từ xa đầu tiên của mình và sau đó bạn có thể sử dụng scp mà không có -3tùy chọn, điều này có thể sẽ tăng tốc độ chuyển.

Hoặc bạn có thể sử dụng thủ thuật mà scp sử dụng và sử dụng một dòng lệnh như vậy:

ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:

(Lưu ý trường hợp khác nhau của tham số cổng cho ssh và scp: ssh -p 6774vs. scp -P 6774)

PS: Tôi đã nhận thông tin này từ bugzilla OpenSSH nơi tôi bước vào đây là một lỗi: https://bugzilla.mindrot.org/show_bug.cgi?id=2020


'-3' dường như không phải là một tùy chọn hợp lệ - Tôi chỉ nhận được "scp: tùy chọn bất hợp pháp - 3".
Rich Sedman

8

Tôi không tìm thấy giải pháp dễ dàng nào nhưng bạn có thể thử sử dụng sshfs theo cách sau:

mkdir /tmp/h1
mkdir /tmp/h2

sshfs -p 6774 user1@host1:/public /tmp/h1
sshfs -p 2211 user2@host2:/data/src /tmp/h2

cp /tmp/h1/files.* /tmp/h2

fusermount -u /tmp/h1
fusermount -u /tmp/h2

Một cách khác có thể là sử dụng ssh (thực tế không được thử nghiệm thành công):

ssh user1@host1 "cat /public/file.bin" | ssh user2@host2 "cat >/data/file.bin"

Hiện tại tôi không tìm thấy đúng cách để nhập hai mật khẩu. Nó yêu cầu một số lần cho hai mật khẩu nhưng không chấp nhận bất cứ ai. Có thể nếu bạn trao đổi các khóa ssh giữa các máy chủ thì nó hoạt động. Bởi vì bạn không cần mật khẩu.

Tôi hi vọng cái này giúp được? Thomas


6

Theo trang này trên blog của Học viện Linux, bạn chỉ cần sử dụng -P 6774tùy chọn ngay trước đường dẫn từ xa thứ hai:

scp -rp -P 6774 denny@67.12.21.133:/home/denny/testapp1.txt -P 6774 denny@67.129.242.40:

Mỗi lần sử dụng -Pcờ chỉ áp dụng cho vị trí tiếp theo trên dòng lệnh, không phải toàn bộ lệnh. Bất kỳ vị trí nào không có -Pgiữa nó và đường dẫn trước đó (hoặc tên lệnh [ scp]) mặc định là cổng tiêu chuẩn (22).


Nó không làm việc cho tôi. Thật đáng tiếc, vì đây có vẻ là giải pháp tốt nhất. Liên kết bị hỏng.
david.perez

1
Chỉ cần cập nhật liên kết (mặc dù tôi quên đăng nhập trước ...). Học viện Linux đã quyết định tái cấu trúc trang web của họ. Hy vọng rằng sẽ giúp, một số!
Dan Hunsaker

Nếu chỉ điều này làm việc. Nhưng tôi nhận được -P: No such file or directory.
Tom

@Tom - Bạn đang chạy hệ thống này trên hệ thống nào? Bạn có thể có một triển khai khác scpso với tham chiếu ở đây.
Dan Hunsaker

Đây là Ubuntu 17.04.
Tom

-2

Nếu bạn cần chuyển dữ liệu từ máy chủ này sang máy chủ khác, hãy sử dụng lệnh SCP. Làm như vậy

Chỉ cần nhấn Ctrl+ Alt+ Ttrên bàn phím để mở Terminal. Khi nó mở ra, chạy lệnh bên dưới.

scp -pr root@192.168.1.2:/path/to/files /destination/path

Lưu ý: Tham số -P có thể được sử dụng nếu bạn muốn đề cập đến số cổng.


2
bạn chưa đọc câu hỏi. Anh ta có một vấn đề với các cổng. bạn có thể đặt cổng đầu tiên, nhưng nối cổng thứ hai với tham số -P
gajdipajti

@gajdipajti Tôi không chỉ định một cổng trong câu trả lời của mình và đã thêm nó vào dưới dạng ghi chú. Người dùng cũng tuyên bố rằng anh ta đang sử dụng cùng một cổng. Nhìn vào dòng Q. 2 & 3 :)
Mitch

2
Nhưng nó không hoạt động theo cách đó, bạn sẽ đặt cái đầu tiên với -P nhưng cái thứ hai sẽ vẫn là 22. Hãy thử xem. Tôi đang làm các bài kiểm tra tại thời điểm này, nhưng vẫn không có giải pháp làm việc.
gajdipajti

Bạn sẽ chỉ sử dụng tùy chọn -P nếu bạn đang sử dụng cổng không chuẩn.
Mitch
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.