使用 scp 传输文件时“权限被拒绝,请重试”

使用 scp 传输文件时“权限被拒绝,请重试”

我有两台服务器(A 和 B)和我的本地计算机。我正在尝试将文件从服务器 A 传输到服务器 B。

从服务器A:

scp ./backup.tar [email protected]:/home/public/
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey, password).
lost connection

从服务器B:

scp [email protected]:/home/public/backup.tar .
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey, password).
lost connection

当我从本地计算机尝试时,出现同样的错误消息。这是怎么回事?


这是当我尝试使用调试标志从服务器 A ssh 到服务器 B 时得到的结果:

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/private/.ssh/identity
debug1: Trying private key: /home/private/.ssh/id_rsa
debug1: Trying private key: /home/private/.ssh/id_dsa
debug1: Next authentication method: password
debug1: read_passphrase: can't open /dev/tty: No such file or directory
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
debug1: read_passphrase: can't open /dev/tty: No such file or directory
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
debug1: read_passphrase: can't open /dev/tty: No such file or directory
debug1: Authentications that can continue: publickey,password
debug1: No more authentication methods to try.
Permission denied (publickey,password).

这是否意味着它找不到我的终端?我应该提到服务器 B 是服务器 A 的子域。然而,我的托管提供商将它们视为完全不同的实体,并且它们不托管在同一个 LPAR 上。


结论 我已经向我的托管提供商发送了电子邮件,似乎存在与 ssh 和操作系统 (freeBSD) 版本相关的小错误。目前,我的解决方法是 (1) 将文件本地 scp 到我的计算机,然后 (2) 将文件本地 scp 到第二个服务器。这是scp -3应该做的,但也失败了。

答案1

ssh这看起来服务器上的配置有问题- 你无法 ssh其中任何一个(可能出于安全原因)。

你可以试试斯蒂芬的建议从本地计算机进行传输 ( )。这应该排除从终端获取输入的问题(这可能是我故意在服务器上创建的)。scp [email protected]:/home/public/backup.tar [email protected]:/home/public/

如果这没有帮助,则意味着提供商可能不允许传出 ssh 连接。在这种情况下,您将有两个选择:

  • 要求提供商启用传出 ssh 连接

或者

答案2

据我了解,以下身份验证似乎可以正常工作localhostserver.alocalhostserver.b。所以,ssh server.a有效,ssh server.b有效。由于服务器上“读取密码”过程出现一些奇怪的问题,连接server.x→失败。server.y

最简单的解决方法是配置 ssh 密钥以自动从一台服务器连接到另一台服务器:

server.a$ ssh-keygen   #use default answers and empty passphrase
server.a$ ssh-copy-id server.b

这允许server.aserver.b与密钥认证的连接。server.b对另一个方向执行相同的操作。

之后,我希望scp应该使用自动身份验证,避免“读取密码”问题。

相关内容