scp'ing sử dụng tệp chính làm tham số, Làm thế nào tôi có thể làm điều đó nếu có thể?


51
scp -i ~/.ssh/id_rsa.pub events*$date*_QA.log $remote_user@$remote_server:$remote_location

Là kịch bản nói trên không chính xác? Tôi không làm đúng?

Tôi đã đi đến .sshthư mục và thấy rằng máy chủ từ xa có trong known_hoststập tin.

Nhưng, khi tôi làm scp thông thường mà không có tệp nào làm tham số, nó vẫn hỏi mật khẩu

scp events*$date*_QA.log $remote_user@$remote_server:$remote_location

Làm thế nào tôi có thể bao gồm các tập tin quan trọng trong lệnh của tôi?

sh-3.2$ grep server ~/.ssh/*
/home/user/.ssh/known_hosts:server....com,ip_addr ssh-rsa Asine=jhjsdhfjsadhfjkashdfjhasdjfhksadjfhasjdfhj

Câu trả lời:


67
 -i identity_file
         Selects the file from which the identity (private key) for public
         key authentication is read.  This option is directly passed to
         ssh(1).

Sử dụng ~/.ssh/id_rsa.


vẫn đang hỏi mật khẩush-3.2$ scp -i ~/.ssh/id_rsa test_QA.log user@server:location user@server's password:

@tech_learner lạ, vì nó hiệu quả với tôi
Whitequark

2
Bạn có thể phải sử dụng một đường dẫn thực tế, như trong / home / user / thay vì ~. Điều đó dường như đã làm cho nó làm việc cho tôi.
Evan Darwin

1
Bạn muốn nội dung ~ / .ssh / id_rsa.pub của người dùng cục bộ được đặt trong tệp ủy quyền của máy chủ từ xa. Nó thường ở ~ / .ssh / ủy quyền. Bạn cũng cần đặc biệt về các quyền của tệp trên các tệp trong ~ / .ssh, làm cho chúng có thể truy cập tối thiểu. sshd rất đặc biệt về các quyền của tập tin.
JR Lawhorne

Trên Mac OS X, nó chỉ hoạt động nếu -i ~/.ssh/id_rsalà tùy chọn đầu tiên. Vì vậy, điều này làm việc : scp -i ~/.ssh/mykey.pem -r dir user@remote_server:~/. Điều này đã không hoạt động:scp -r -i ~/.ssh/mykey.pem dir user@remote_server:~/
asmaier

1

Điều này có thể giúp một noob khác.

[Tôi biết đây là một ví dụ tròn dự phòng nhưng thật tốt để minh họa] Kịch bản:

  1. ssh từ Mac -> Ubuntu
  2. tập tin scp từ Mac -> Ubuntu
  3. đóng các tệp ssh và scp từ Ubuntu -> Mac

Tôi chỉ tạo các khóa ssh trên máy Mac (thông qua ssh-keygen) và chia sẻ chúng với máy chạy Ubuntu thông qua (ssh-copy-id). Vì vậy, tôi có thể sao chép các tệp, trong khi đăng nhập vào máy Mac của mình từ máy chạy Ubuntu, nhưng không phải là cách khác.

Giải pháp: Tôi đã phải tạo các khóa ssh trên Máy Ubuntu và chia sẻ chúng với máy Mac của mình. sau đó tôi có thể chạy thành công lệnh sau trên Ubuntu Machine

Mac IP: 192.168.1.40
Ubuntu IP: 192.168.1.38

Trên máy Mac

ssh-keygen
ssh-copy-id ubuntu@192.168.1.38

ssh ubuntu@192.168.1.38

# Now on Ubuntu
ssh-keygen
ssh-copy-id MAC@192.168.1.40

Và bây giờ lệnh sau sẽ sao chép tệp mà không yêu cầu mật khẩu vào MAC

sudo scp -i /home/ubuntu/.ssh/id_rsa MAC@192.168.1.40:~/Documents/Fluff/Version-Control/tools/pull.sh .

0

Đã kiểm tra và sửa chữa thông qua các hướng dẫn sau: https://askubfox.com/questions/46930/how-can-i-set-up-password-less-ssh-login

Các hướng dẫn ở đây hoạt động hoàn hảo khi tôi thử nghiệm trên các hộp của mình (CentOS / CentOS). Tôi tưởng tượng vấn đề là các khóa ssh của bạn không được gắn với tên người dùng.

Ví dụ: authorized_keys mèo # trên Box Tôi sshing / scpin' để ssh-rsa BLAHBLAHBLAHBLAH / zAcS4kD9pyPAjD3 / gd5D1rcQa6IztCMR9yMXiGFnxviWsT8 / oYevZw25k4yREuA8ibLKC9peH1X4LK1E + n7gq4TETexWkZbQ2XGLOX44eglra3MB4FShPg0cZXGcJWltPQ / y0Ay2A / KmaC14YrDfqwm7 + ibTiUp4hOO8I6eIPmwwGn / 2hs0SewJXisGqUx2v #username my_user@machine.local được gắn với chìa khóa và là một máy chủ ủy quyền

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.