ユーザーが自分のホームディレクトリにあるファイルに対してscpコマンドを実行すると、scp権限が拒否されます。

ユーザーが自分のホームディレクトリにあるファイルに対してscpコマンドを実行すると、scp権限が拒否されます。

使用中に「許可拒否」エラーに関する多くの投稿を確認しましたが、scp私の質問に対する回答が見つかりませんでした。

AWSの同じネットワークに2つのUbuntuサーバーがあります(サーバー「A」と「B」と仮定)。ファイルを別のサーバーにコピーしようとすると、AからBには機能しませんが、BからAに効果があります。 (下記参照)

サーバー「A」では、

ubuntu@server-a ~ $ ls -alt server*
-rwxr-xr-x 1 ubuntu ubuntu 8152 Aug  9 14:26 server.xml.bak

ubuntu@server-a ~ $ scp -P 443 server.xml.bak [email protected]:/home/ubuntu/
Permission denied (publickey).
lost connection

ubuntu@server-a ~ $ scp -P 443 /home/ubuntu/server.xml.bak [email protected]:/home/ubuntu/
Permission denied (publickey).
lost connection

ここにリモートファイルのコピーも試しましたが、失敗しました。

ubuntu@server-a ~ $ scp -P 443 [email protected]:/home/ubuntu/sakila.sql .
Permission denied (publickey).

しかし、サーバー「B」では、すべてが正常です。

ubuntu@server-b ~ $ scp -P 443 [email protected]:/home/ubuntu/server.xml.bak .
server.xml.bak                                                    100% 8152     8.0KB/s   00:00

ubuntu@server-b ~ $ scp -P 443 sakila.sql [email protected]:/home/ubuntu/
sakila.sql                                                        100% 3153KB   3.1MB/s   00:00

ご覧のとおり、これは権限の問題ではありません。すべての操作は「ubuntu」ホームディレクトリの「ubuntu」によって実行され、ファイルも755モードで「ubuntu」によって所有されます。

だから今は何が間違っているのか混乱しています。

答え1

提案したように、元のコメントを回答に移動し、同様の問題が発生した場合に備えて、より詳細な情報を提供します。

@lgeorgetのコメントからヒントを得ました。コマンドを実行しscp -v、秘密鍵が欠落しているためであることがわかりました。

セキュリティ上の理由から、サーバーの秘密鍵をすべて削除し、秘密鍵の管理にPageantを使用しました。このシナリオでは、PuTTYを使用してB(BはBaschen Server)に接続し、別のPuTTY端末を開き、Bに再接続し、SSHを介してAに接続します。したがって、美人コンテストはBの秘密鍵を処理できますが、Aの秘密鍵は直接処理できません。 (これを識別できません。)
結果として、BからターゲットサーバーAへのscpコマンドは機能しますが、AからターゲットサーバーBへのscpコマンドは機能しません。始める。

テストのために秘密鍵をAにアップロードしましたが、Aのscpコマンドも正しく機能します。

秘密鍵をサーバーに保持できないので、サーバーBでscpコマンドを使用する必要があるようです。

関連情報