scp'ing anahtar dosyasını parametre olarak kullanarak, mümkünse nasıl yapabilirim?


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

Yukarıda belirtilen komut dosyası yanlış mı? Doğru yapmıyor muyum?

.sshDizine gittim ve uzak sunucunun known_hostsdosyada olduğunu gördüm .

Ancak, parametre olarak herhangi bir dosya olmadan normal scp yaptığımda, hala şifre istiyor

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

Anahtar dosyasını komutuma nasıl ekleyebilirim?

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

Yanıtlar:


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

Kullanın ~/.ssh/id_rsa.


hala şifre soruyorsh-3.2$ scp -i ~/.ssh/id_rsa test_QA.log user@server:location user@server's password:

@tech_learner garip, bu benim için çalışıyor
whitequark

2
~ Yerine / home / user / içinde olduğu gibi gerçek bir yol kullanmanız gerekebilir. Bu benim için çalışmasını sağlamıştır.
Evan Darwin

1
Yerel kullanıcının ~ / .ssh / id_rsa.pub içeriğinin uzak sunucunun yetkili_keys dosyasına yerleştirilmesini istiyorsunuz. Genellikle ~ / .ssh / yetkili_keylerdedir. Ayrıca ~ / .ssh dosyasındaki dosya izinleri konusunda çok özel olmanız gerekir, bu da onları en az erişilebilir hale getirir. sshd dosya izinleri konusunda çok özeldir.
JR Lawhorne

Mac OS X'te, yalnızca -i ~/.ssh/id_rsailk seçenek olduğunda işe yaradı . Yani bu çalıştı: scp -i ~/.ssh/mykey.pem -r dir user@remote_server:~/. Bu işe yaramadı:scp -r -i ~/.ssh/mykey.pem dir user@remote_server:~/
asmaier

1

Bu başka bir noob yardımcı olabilir.

[Bunun gereksiz bir dairesel örnek olduğunu biliyorum ama açıklamakta fayda var] Senaryo:

  1. Mac'ten ssh -> Ubuntu
  2. Mac'ten scp dosyaları -> Ubuntu
  3. ssh ve scp dosyalarını Ubuntu'dan kapat -> Mac

Mac'imde sadece ssh tuşları yaratmıştım (ssh-keygen aracılığı ile) ve onları Ubuntu çalıştıran makineyle (ssh-copy-id) paylaşmıştım. Böylece Mac'ime giriş yaparken Ubuntu çalıştıran makineden dosyaları kopyalayabilirdim, ancak tersi olmaz.

Çözüm: Ubuntu Makinesi'nde ssh anahtarları oluşturmak ve bunları Mac'imle paylaşmak zorunda kaldım. daha sonra Ubuntu Makinesinde aşağıdaki komutu başarılı bir şekilde çalıştırabilirim.

Mac IP: 192.168.1.40
Ubuntu IP: 192.168.1.38

Mac’te

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

Ve şimdi aşağıdaki komut MAC için şifre sormadan dosyayı kopyalamalıdır.

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

0

Bu talimatlarla test edilmiş ve düzeltilmiş: https://askubuntu.com/questions/46930/how-can-i-set-up-password-less-ssh-login

Buradaki talimatlar kutularımı (CentOS / CentOS) test ederken kusursuzca çalıştı. Sanırım, ssh anahtarlarınız bir kullanıcı adına bağlı değil.

Örnek: Box kedi authorized_keys # Ben sshing / scpin' için ssh-rsa BLAHBLAHBLAHBLAH / zAcS4kD9pyPAjD3 / gd5D1rcQa6IztCMR9yMXiGFnxviWsT8 / oYevZw25k4yREuA8ibLKC9peH1X4LK1E + n7gq4TETexWkZbQ2XGLOX44eglra3MB4FShPg0cZXGcJWltPQ / y0Ay2A / KmaC14YrDfqwm7 + ibTiUp4hOO8I6eIPmwwGn / 2hs0SewJXisGqUx2v my_user@machine.local #username anahtarına bağlıdır ediyorum ve bir olduğunu yetkili ev sahibi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.