web-dev-qa-db-ja.com

パスワードプロンプトなしのあるサーバーから別のサーバーへのSCP

パスワードを要求せずに1つのボックスから別のボックスにscpを実行する最良の方法は何ですか?

2つのサーバーがあります。

  • サーバーA(10.152.2.10):/home/Oracle/export/files.txt

  • サーバーB(10.152.2.11):/home/Oracle/import/

パスワードの入力を求められずに、scpを使用してサーバーAからサーバーBにファイルを転送する場合

[これをサーバーAから実行中、/home/Oracle/export/]

scp files.txt [email protected]:/home/Oracle/import

これにより、コマンドの入力時にパスワードの入力を求められます。

Keygenを生成してサーバーAにコピーする必要があることを理解しています。したがって、[サーバーAで]:

ssh-keygen -t rsa

これにより、/home/Oracle/.sshに保存されている2つのファイルが得られます。

id_rsa
id_rsa.pub

1. 2つのファイル(id_rsaid_rsa.pub)をサーバーB /home/Oracle/.sshにコピーしますか?

これに関するいくつかのグーグル検索をしている間、これをauthorized_keysに追加/連結することについて言及したいくつかの記事。

2.このファイルを自分で作成する必要がありますか?

これを行うための正しい方法は何なのか混乱しています。

ところで、2台のサーバーはSuse Linux Enterprise Edition 9を実行しています...

19
N2EE
  1. いいえ、あなたはid_rsaをあなた自身に守ります。ただし、公開鍵であるid_rsa.pubは、アクセスしたいサーバーにコピーされる場合があります。それらを~/.ssh/authorized_keysの末尾に連結します。
  2. はい、まだ作成されていない場合は、~/.ssh/authorized_keysを作成できます。それ以外の場合は、cat id_rsa.pub >>~/.ssh/authorized_keysを使用して、ファイルの最後に追加します。
16
mipadi

また、ssh-copy-idと呼ばれる、このすべてを並べ替えるツールもあります。

authorized_keysファイルを実行している場合は、エージェントにキーを追加し、適切な権限で存在しない場合は作成します。エージェントを実行していない場合は、-iでプッシュするキーを指定できます:ssh-copy-id -i ~/.ssh/id_rsa

11
mauilion

また、さまざまなファイルとディレクトリの権限も確認する必要があります。

authorized_keys needs perms of 600 (chmod 600 authorized_keys)
the .ssh directory should be 700
your home directory should be at most 744

あなたのホームディレクトリはあなた以外の誰からも書き込み可能であってはなりません。

5
dr-jan

私は次のようにします:

クライアント上:

ssh-keygen -t rsa
ssh-copy-id [email protected]

これにより、キーがクライアントからサーバーにコピーされます。リングにキーを追加するには、サーバーのパスワードが必要です。

  • パスワード認証をオンにするか、キーファイルをサーバーに手動で配信する必要があります。

サーバー上:

私は少なくとも、パスワード認証をオフにします。

0

ssh-keygenから生成されたキーを設定しても、パスワードなしの転送が機能しない場合は、以下のように、冗長モードコマンドでソースマシンで使用されている公開キーを確認します。

sftp -v -oPort=22 userid@server

通常、これは/home/<user>/.ssh/id_rsa.pubの公開鍵を参照します。これは、ssh-keygenを使用して生成したものとは異なる場合があります。このid_rsa.pubを宛先サーバーに追加する必要があります。

0
Raj