scp'ing menggunakan file kunci sebagai parameter, Bagaimana saya bisa melakukan itu jika memungkinkan?


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

Apakah skrip yang disebutkan di atas salah? Apakah saya tidak melakukannya dengan benar?

Saya pergi ke .sshdirektori dan melihat bahwa server jauh ada di known_hostsfile.

Tapi, ketika saya melakukan scp biasa tanpa file sebagai parameter, masih meminta kata sandi

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

Bagaimana saya bisa memasukkan file kunci dalam perintah saya?

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

Jawaban:


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).

Gunakan ~/.ssh/id_rsa.


masih meminta kata sandish-3.2$ scp -i ~/.ssh/id_rsa test_QA.log user@server:location user@server's password:

@ tech_learner aneh, karena itu bekerja untuk saya
whitequark

2
Anda mungkin harus menggunakan jalur yang sebenarnya, seperti di / home / user / bukannya ~. Itu sepertinya membuatnya bekerja untuk saya.
Evan Darwin

1
Anda ingin konten ~ / .ssh / id_rsa.pub pengguna lokal ditempatkan di file otor_keys server jarak jauh. Ini biasanya di ~ / .ssh / official_keys. Anda juga harus sangat khusus tentang izin file pada file di ~ / .ssh, membuatnya dapat diakses secara minimal. sshd sangat khusus tentang izin file.
JR Lawhorne

Pada Mac OS X itu hanya berfungsi jika -i ~/.ssh/id_rsamerupakan opsi pertama. Jadi ini bekerja: scp -i ~/.ssh/mykey.pem -r dir user@remote_server:~/. Ini tidak berhasil:scp -r -i ~/.ssh/mykey.pem dir user@remote_server:~/
asmaier

1

Ini mungkin membantu noob lain.

[Saya tahu ini adalah contoh lingkaran yang berlebihan tetapi bagus untuk menggambarkannya] Skenario:

  1. ssh dari Mac -> Ubuntu
  2. file scp dari Mac -> Ubuntu
  3. tutup file ssh dan scp dari Ubuntu -> Mac

Saya hanya membuat kunci ssh pada Mac saya (via ssh-keygen) dan membagikannya dengan mesin yang menjalankan Ubuntu via (ssh-copy-id). Jadi saya bisa menyalin file, saat login ke Mac saya dari mesin yang menjalankan Ubuntu, tetapi tidak sebaliknya.

Solusi: Saya harus membuat kunci ssh pada Mesin Ubuntu dan membaginya dengan Mac saya. maka saya bisa berhasil menjalankan perintah berikut di Mesin Ubuntu

Mac IP: 192.168.1.40
Ubuntu IP: 192.168.1.38

Di 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

Dan sekarang perintah berikut harus menyalin file tanpa meminta kata sandi ke MAC

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

0

Diuji dan diperbaiki melalui instruksi ini: https://askubuntu.com/questions/46930/how-can-i-set-up-up-password-less-ssh-login

Instruksi di sini berfungsi dengan sempurna ketika saya menguji pada kotak saya (CentOS / CentOS). Saya membayangkan masalahnya adalah kunci ssh Anda tidak terikat dengan nama pengguna.

Contoh: authorized_keys cat # di Box Saya sshing / scpin' untuk ssh-rsa BLAHBLAHBLAHBLAH / zAcS4kD9pyPAjD3 / gd5D1rcQa6IztCMR9yMXiGFnxviWsT8 / oYevZw25k4yREuA8ibLKC9peH1X4LK1E + n7gq4TETexWkZbQ2XGLOX44eglra3MB4FShPg0cZXGcJWltPQ / y0Ay2A / KmaC14YrDfqwm7 + ibTiUp4hOO8I6eIPmwwGn / 2hs0SewJXisGqUx2v #username my_user@machine.local terkait dengan kunci dan merupakan tuan rumah resmi

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.