web-dev-qa-db-ja.com

SCPコマンドはパスワードを要求し続けます

私はこれで何日も苦労していて、私が間違っていることを見つけることができません。

VPSサーバーにウェブサイトがあります。毎晩、データベースのバックアップを作成します。それは私の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

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

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.pubNAS/authorized_keysを調べると、両方のキーが同一であることがわかります。

次に、次を使用して、VPSからNAS)にテストファイルをコピーしようとしています。

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

ただし、その結果、シェルは(毎回)パスワードを要求します。

どうしてパスを出し続けなければならないのですか?

1
LinkinTED

デーモンの問題をトラブルシューティングするときは、常にシステムログを確認する必要があります。
この特定のケースでは、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は/home/userファイルの使用を拒否します。 、/home/)。これは、別のユーザーが~/.sshディレクトリ(または~/.ssh/authorized_keysファイル)を自分のディレクトリに置き換えてから、ユーザーにSSH接続する可能性があるためです。

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

chmod 755 ~
6
Patrick

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

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

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