2015-09-05 15 views
24

Tôi muốn sao chép một tập tin địa phương từ một máy Vagrant đến máy chủ địa phương của tôi, nhưng tôi nhận được một thông báo lỗi:Làm thế nào để sao chép tập tin từ một máy Vagrant đến máy chủ địa phương

ssh: kết nối để lưu trữ 127,0 .0.1 cổng 22: Kết nối từ chối

[[email protected] ceil]$ scp -p 2222 [email protected]:/home/vagrant/devstack/local.conf . 
cp: cannot stat ‘2222’: No such file or directory 
ssh: connect to host 127.0.0.1 port 22: Connection refused 

tôi cũng đã cố gắng sử dụng sử dụng localhost nhưng vẫn có những lỗi tương tự.

Trả lời

16

Bạn nên đọc trang hướng dẫn sử dụng cho scp. Cú pháp đúng là:

scp -P 2222 [email protected]:/home/vagrant/devstack/local.conf . 

các chữ hoa P là dành cho "cổng". Chữ thường được sử dụng để bảo tồn thời gian sửa đổi.

4

Đây là một công cụ hữu ích cho bất cứ ai đến nhập qua Google: Vagrant SCP

14

Nhận IdentityFile và Port bằng cách sử dụng

vagrant ssh-config 

scp -i IdentityFile_file -P Port [email protected]:/file_dir dist_dir ví dụ

scp -i /Users/xxxxx/tmp/vagrant/centos_6.5/.vagrant/machines/default/virtualbox/private_key -P 2200 [email protected]:/tmp/xxx . 
31

lựa chọn khác là cat các tập tin vào một cái gì đó ở địa phương:

vagrant ssh -c "sudo cat /home/vagrant/devstack/local.conf" > local.conf 

này cũng nên làm việc cho các tập tin mà đòi hỏi quyền root (một cái gì đó SCP Plugin lang thang dường như không hỗ trợ).

2

Như @SevenJ đã đề cập, ssh-config có thể cung cấp tất cả thông tin bạn cần. Nhưng nó dễ dàng hơn nhiều để lưu nó vào một tập tin và sử dụng tập tin đó, thay vì xây dựng một lệnh scp phức tạp. Ví dụ:

vagrant ssh-config > config.txt 
scp -F config.txt default:/path/to/file . 

Ở đây tôi giả định tệp lang thang của bạn không ghi đè tên máy từ "mặc định". Nếu có, hãy thay thế "default:" bằng ":".

Các vấn đề liên quan