パスワードを要求せずに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_rsa
、id_rsa.pub
)をサーバーB /home/Oracle/.ssh
にコピーしますか?
これに関するいくつかのグーグル検索をしている間、これをauthorized_keysに追加/連結することについて言及したいくつかの記事。
2.このファイルを自分で作成する必要がありますか?
これを行うための正しい方法は何なのか混乱しています。
ところで、2台のサーバーはSuse Linux Enterprise Edition 9を実行しています...
id_rsa
をあなた自身に守ります。ただし、公開鍵であるid_rsa.pub
は、アクセスしたいサーバーにコピーされる場合があります。それらを~/.ssh/authorized_keys
の末尾に連結します。~/.ssh/authorized_keys
を作成できます。それ以外の場合は、cat id_rsa.pub >>~/.ssh/authorized_keys
を使用して、ファイルの最後に追加します。また、ssh-copy-id
と呼ばれる、このすべてを並べ替えるツールもあります。
authorized_keys
ファイルを実行している場合は、エージェントにキーを追加し、適切な権限で存在しない場合は作成します。エージェントを実行していない場合は、-i
でプッシュするキーを指定できます:ssh-copy-id -i ~/.ssh/id_rsa
また、さまざまなファイルとディレクトリの権限も確認する必要があります。
authorized_keys needs perms of 600 (chmod 600 authorized_keys)
the .ssh directory should be 700
your home directory should be at most 744
あなたのホームディレクトリはあなた以外の誰からも書き込み可能であってはなりません。
私は次のようにします:
クライアント上:
ssh-keygen -t rsa
ssh-copy-id [email protected]
これにより、キーがクライアントからサーバーにコピーされます。リングにキーを追加するには、サーバーのパスワードが必要です。
サーバー上:
私は少なくとも、パスワード認証をオフにします。
ssh-keygen
から生成されたキーを設定しても、パスワードなしの転送が機能しない場合は、以下のように、冗長モードコマンドでソースマシンで使用されている公開キーを確認します。
sftp -v -oPort=22 userid@server
通常、これは/home/<user>/.ssh/id_rsa.pub
の公開鍵を参照します。これは、ssh-keygen
を使用して生成したものとは異なる場合があります。このid_rsa.pub
を宛先サーバーに追加する必要があります。