SCP コマンドがパスワードを要求し続ける

SCP コマンドがパスワードを要求し続ける

私は何日もこれに苦労していますが、何が間違っているのか分かりません。

私は VPS サーバー上に Web サイトを持っています。毎晩データベースのバックアップを作成します。これは VPS サーバーに保存されます。また、自宅の NAS (Synology DS214play) にもコピーを送信したいと考えています。両方のサーバーは Linux で動作します。

そこで、VPS サーバーに (root として) ログインし、 を生成しましたssh-keygen

私の VPS では次のようになります:

[root@vps /]# cd ~
[root@vps ~]# ls -alh
dr-xr-x---.  7 root root 4.0K Jun 25 18:58 .
dr-xr-xr-x. 24 root root 4.0K Jun 25 19:33 ..
drwx------   3 root root 4.0K Jun 25 20:29 .ssh
[root@vps ~]# cd .ssh
[root@vps .ssh]# ls -alh
drwx------  3 root root 4.0K Jun 25 20:29 .
dr-xr-x---. 7 root root 4.0K Jun 25 18:58 ..
-rw-------  1 root root 1.7K Jun 26 07:27 id_rsa
-rw-r--r--  1 root root  403 Jun 26 07:27 id_rsa.pub
-rw-------  1 root root  394 Jun 25 20:29 known_hosts

次に、ファイルをNASにコピーしました。ssh-copy-id

admin@NAS:/$ cd ~
admin@NAS:~$ ls -alh
drwxrwxrwx  6 admin users 4.0K Jun 26 07:28 .
drwxrwxrwx 13 root  root  4.0K Jun 21 20:57 ..
drwx------  2 admin users 4.0K Jun 26 07:28 .ssh
admin@NAS:~$ cd .ssh
admin@NAS:~/.ssh$ ls -alh
drwx------ 2 admin users 4.0K Jun 26 07:28 .
drwxrwxrwx 6 admin users 4.0K Jun 26 07:28 ..
-rw------- 1 admin users  403 Jun 26 07:27 authorized_keys

調べてみるVPS/id_rsa.pubと、NAS/authorized_keys両方のキーが同一であることがわかりました。

今、私は以下を使用して VPS から NAS にテスト ファイルをコピーしようとしています:

[root@vps /]# scp -i ~/.ssh/id_rsa /test.txt admin@___.___.___.___:/volume1/SQL_backup

しかし、その結果、シェルがパスワードを(毎回)要求することになります。

なぜパスを渡し続けなければならないのですか?

答え1

デーモンに関する問題をトラブルシューティングするときは、必ずシステム ログを確認する必要があります。
この特定のケースでは、NASホスト上のシステム ログを確認すると、次のような内容が表示されます。

Authentication refused: bad ownership or modes for directory /home/admin

問題は次の出力に示されています:

admin@NAS:~$ ls -alh
drwxrwxrwx  6 admin users 4.0K Jun 26 07:28 .

authorized_keysセキュリティ上の理由から、ディレクトリの祖先~/.sshがユーザーまたはルート以外のユーザーによって書き込み可能である場合 (祖先とは、、、、を意味します) /home/user/.ssh、SSHはそのファイルの使用を拒否します。これは、別のユーザーがディレクトリ (またはファイル) を自分のものに置き換えて、そのユーザーに SSH で接続できるためです。/home/user/home/~/.ssh~/.ssh/authorized_keys

修正するには、次のようにディレクトリの権限を変更します。

chmod 755 ~

答え2

. を使用して秘密鍵を作成したときに、秘密鍵のパスワードを作成した可能性がありますssh-keygen

私が使用するワークフローは次のとおりです。

  1. ssh-keygen
  2. ssh-copy-id root@remote_host
  3. scp /test.text root@remote_host:/opt/application/

関連情報