Không thể sử dụng scp với bí danh bash


15

Mã này không hoạt động:

scp ~/Desktop/favicon.ico nameOfBashAlias:/public_html/mySite/templates/blog/

Bí danh là:

alias nameOfBashAlias='ssh myUsername@11.11.11.111'

Làm thế nào để tôi giải quyết vấn đề này?

Biên tập

Là một cái gì đó tương tự như mã sau đây có thể, như chạy nhiều trường hợp bash?

scp ~/Desktop/favicon.ico (nameOfBashAlias)>:/public_html/mySite/templates/blog/

Tôi đã không nhận được mã trên để làm việc.

Câu trả lời:


22

Tôi không khuyên bạn nên sử dụng bí danh Bash cho những gì bạn đang cố gắng thực hiện. Bạn chỉ có thể nhập tất cả thông tin vào tệp cấu hình của SSH và được thực hiện với nó. Đọc trang người đàn ông ssh_confignếu bạn tò mò những thứ này đến từ đâu. Bạn có thể làm một số điều gọn gàng vớissh_config

Các tập tin được đặt ở đây ~/.ssh/config

Sử dụng trình chỉnh sửa yêu thích của bạn và tạo tệp và sau đó điều chỉnh chúng theo tình huống của bạn.

Host nameOfBashAlias
HostName 11.11.11.11
User myUsername
Port 22

Bây giờ bạn đang thiết lập để ban hành lệnh sau:

$ ssh nameOfBashAlias 

Một cái gì đó tôi cá là bạn không biết là tất cả những thứ này được tích hợp như thế nào. Bây giờ bạn đã có thiết lập này, các lệnh sau cũng hoạt động

$ scp /some/file nameOfBashAlias:/path/to/storage/location/ 

Không còn nhớ rằng scp sử dụng "-P" cho cổng và ssh sử dụng "-p". Ngoài ra, "bí danh" này cũng hoạt động trong các ứng dụng gui của OS X như Transmit.

OpenSSH có được dữ liệu cấu hình từ các nguồn sau theo thứ tự sau:

  1. tùy chọn dòng lệnh
  2. tập tin cấu hình của người dùng ~/.ssh/config
  3. tập tin cấu hình toàn hệ thống /etc/ssh_config

Vâng, tôi hoàn toàn đồng ý với bạn. Ngày nay tôi cũng đang sử dụng phương pháp đó, vì nó đồng bộ hóa tốt hơn rất nhiều với hệ thống khác và các công cụ khác.
Léo Léopold Hertz

không làm việc cho tôi trên MacOSX
Jabran Saeed

@JabranSaeed Xin vui lòng, mở một câu hỏi mới hoặc ở đây một wiki cộng đồng như một câu trả lời về trường hợp của bạn với một phần thông tin về hệ điều hành, phiên bản, vỏ của bạn, v.v. Xin vui lòng, cung cấp liên kết về thách thức của bạn ở đây trong bình luận. Chủ đề này có liên quan đến GNU scp.
Léo Léopold Hertz

FWIW cái này dường như hoạt động trên OS X (ít nhất là nó đã làm với tôi, El Capitain 10.11.6)
Alex W

5

scpkhông chạy bash. Bạn sẽ cần phải chạy này:

 scp ~/Desktop/favicon.ico 11.11.11.111:/public_html/mySite/templates/blog/

Nếu tất cả những gì bạn có là bí danh và mã trên không thể thực hiện được cho bạn, hãy xem xét việc chạy nó như thế này:

nameOfBashAlias cat /public_html/mySite/templates/blog/ > ~/Desktop/favicon.ico

Theo cách này, bạn thực sự đang gọi sshvà hướng nội dung tệp vào một tệp trên đĩa. Điều này có thể được viết theo cách khác để tải lên.


Lệnh đầu tiên phải là scp ~ / Desktop / favicon.ico username@11.11.11.111: / public_html / mySite / samples / blog /
Léo Léopold Hertz

2

Bí danh được thay thế khi chúng là từ đầu tiên của lệnh bash. Bí danh của bạn xuất hiện ở đầu từ thứ ba.

Tôi sẽ sử dụng một biến shell cho điều này.

blah='myUsername@11.11.11.111'
scp ~/Desktop/favicon.ico ${blah}:/public_html/mySite/templates/blog/

Btw, tôi nghĩ bí danh ban đầu của bạn không nên có ssh trong đó. Và mẫu mã cuối cùng có một> trong đó cũng có vẻ sai.


@mataap: Cảm ơn bạn rất nhiều vì câu trả lời của bạn!
Léo Léopold Hertz

0

Không, ví dụ của bạn sẽ không hoạt động, vì đó không phải là cách BASHbí danh hoạt động. Tôi đề nghị bạn sử dụng một biến. Đặt cái này trong ~/.profilehoặc ~/.bashrcbất cứ thứ gì bạn sử dụng]:
site="user@site.com"
sau đó trong thiết bị đầu cuối của bạn, cái này sẽ hoạt động:
scp favicon.ico $site:/dir/


Hoặc bạn có thể viết một kịch bản như tôi làm cho iPod của tôi. trong bashrc của tôi, tôi có ipod=192.168.2.60, sau đó trong kịch bản của tôi, tôi source ~/.bashrcnhận được các biến của mình trong kịch bản, sau đó trong kịch bản: scp $1 $ipod
nhược điểm là tôi phải chỉnh sửa tập lệnh để thực hiện đệ quy. và tôi chỉ có thể làm 1 tập tin. nhưng khi tôi cần một trong những thứ tôi thường sử dụng scptrực tiếp từ thiết bị đầu cuối!
~ Matt

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.