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

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

次に、次のコマンドを使用してファイルを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_keysSSHを介してそのユーザーにログインできるためです。

この問題を解決するには、次のようにディレクトリの権限を変更します。

chmod 755 ~

答え2

秘密鍵を生成すると、秘密鍵のパスワードを生成できますssh-keygen

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

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

関連情報