パラメータとしてキーファイルを使用したscp'ing、できればどのようにできますか?


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

前述のスクリプトは間違っていますか?正しくやっていないのですか?

私はに行ってきました.ssh、リモート・サーバが中にあるディレクトリとのこぎりknown_hostsファイル。

しかし、パラメータとしてファイルなしで通常のscpを実行すると、まだパスワードを要求しています

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

キーファイルをコマンドに含めるにはどうすればよいですか?

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

回答:


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

を使用し~/.ssh/id_rsaます。


まだパスワードを要求sh-3.2$ scp -i ~/.ssh/id_rsa test_QA.log user@server:location user@server's password:

@tech_learner奇妙な、それは私のために働く
ホワイトクォーク

2
〜ではなく/ home / user /のように、実際のパスを使用する必要がある場合があります。それが私にとってはうまくいったように思えた。
エヴァンダーウィン

1
ローカルユーザーの〜/ .ssh / id_rsa.pubコンテンツをリモートサーバーのauthorized_keysファイルに配置する必要があります。通常は〜/ .ssh / authorized_keysにあります。また、〜/ .ssh内のファイルに対するファイルのアクセス許可についても細心の注意を払って、最小限のアクセスを可能にする必要があります。sshdは、ファイルのアクセス権について非常に細心の注意を払っています。
JRローホーン

Mac OS Xでは-i ~/.ssh/id_rsa、最初のオプションである場合にのみ機能しました。これはうまくいきました:scp -i ~/.ssh/mykey.pem -r dir user@remote_server:~/。これは機能しませんでした:scp -r -i ~/.ssh/mykey.pem dir user@remote_server:~/
asmaier

1

これは別の初心者を助けるかもしれません。

[これは冗長な循環例ですが、説明するのに適しています]シナリオ:

  1. Macからのssh-> Ubuntu
  2. Macのscpファイル-> Ubuntu
  3. Ubuntuからsshおよびscpファイルを閉じる-> Mac

Macで(ssh-keygenを介して)sshキーのみを作成し、(ssh-copy-id)を介してUbuntuを実行しているマシンと共有しました。だから、Ubuntuを実行しているマシンからMacにログインしている間にファイルをコピーできましたが、その逆はできませんでした。

解決策:Ubuntuマシンでsshキーを作成し、Macと共有する必要がありました。その後、Ubuntuマシンで次のコマンドを正常に実行できました

Mac IP: 192.168.1.40
Ubuntu IP: 192.168.1.38

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

そして今、次のコマンドはMACへのパスワードを要求せずにファイルをコピーする必要があります

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

0

次の手順でテストおよび修正します:https : //askubuntu.com/questions/46930/how-can-i-set-up-password-less-ssh-login

ここでの手順は、ボックス(CentOS / CentOS)でテストしたときに問題なく機能しました。問題は、sshキーがユーザー名に関連付けられていないことだと思います。

例:ボックスの猫のauthorized_keys#Iはsshing / SCPIN'へのssh-rsaのBLAHBLAHBLAHBLAH / zAcS4kD9pyPAjD3 / gd5D1rcQa6IztCMR9yMXiGFnxviWsT8 / oYevZw25k4yREuA8ibLKC9peH1X4LK1E + n7gq4TETexWkZbQ2XGLOX44eglra3MB4FShPg0cZXGcJWltPQ / y0Ay2A / KmaC14YrDfqwm7 + ibTiUp4hOO8I6eIPmwwGn / 2hs0SewJXisGqUx2v my_user@machine.local #usernameをキーに結び付けられていることだし、あります許可されたホスト

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.