私は数日間この問題で苦労していますが、私が間違っていることを見つけることができません。
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
次に、次のコマンドを使用してファイルを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は~/.ssh
ユーザーまたはルート(祖先は、、、、/home/user/.ssh
を/home/user
意味/home
します)以外の人がディレクトリの親エントリに書き込むことができる場合、/
ファイルの使用を拒否します。これは、他のユーザーが~/.ssh
ディレクトリ(またはファイル)を自分のディレクトリ(またはファイル)に置き換えてから、~/.ssh/authorized_keys
SSHを介してそのユーザーにログインできるためです。
この問題を解決するには、次のようにディレクトリの権限を変更します。
chmod 755 ~
答え2
秘密鍵を生成すると、秘密鍵のパスワードを生成できますssh-keygen
。
私が使用するワークフローは次のとおりです。
ssh-keygen
ssh-copy-id root@remote_host
scp /test.text root@remote_host:/opt/application/