私はこれで何日も苦労していて、私が間違っていることを見つけることができません。
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.pub
とNAS/authorized_keys
を調べると、両方のキーが同一であることがわかります。
次に、次を使用して、VPSからNAS)にテストファイルをコピーしようとしています。
[root@vps /]# scp -i ~/.ssh/id_rsa /test.txt admin@___.___.___.___:/volume1/SQL_backup
ただし、その結果、シェルは(毎回)パスワードを要求します。
どうしてパスを出し続けなければならないのですか?
デーモンの問題をトラブルシューティングするときは、常にシステムログを確認する必要があります。
この特定のケースでは、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 ~
ssh-keygen
を使用して秘密鍵を作成しているときに、秘密鍵のパスワードを作成した可能性があります。
私が使用するワークフローは次のとおりです。
ssh-keygen
ssh-copy-id root@remote_Host
scp /test.text root@remote_Host:/opt/application/