我正在尝试使用 scp 将文件从一台服务器复制到另一台服务器。
在两台服务器上,我将 ssh 端口配置为 222。两台服务器的 sshd_config 完全相同(没有启用 RootLogin、PasswordAuthentication)
由于许多原因(在此无法详细解释),我无法使用密钥认证。
当我使用 scp 从服务器 A 复制到服务器 B(记录到 A)时,它可以正常工作。但是当我从 B 到 A(记录到 B)执行同样的事情时,它不起作用:我收到错误消息“权限被拒绝”,并且 scp 不会要求我输入密码(尽管已启用密码验证)
这是我使用的命令(登录到服务器 B):
scp -P 222 -vvv ~/backup/file user@serverA:/home/user/backup
以下是输出的最后几行:
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: password
debug3: start over, passed a different list password
debug3: preferred publickey,keyboard-interactive
debug1: No more authentication methods to try.
user@serverA: Permission denied (password).
为什么 scp 不要求我输入密码,而“密码”已启用(因为它写在第二个“debug1”行)?
谢谢。
答案1
最好的解决方案是询问禁用publickey
该服务器身份验证的人原因,然后去修复它。使用publickey
身份验证比密码更方便、更安全。
身份验证失败的原因是客户端和服务器上均未启用任何身份验证方法。服务器上启用的身份验证方法包括:
debug1: Authentications that can continue: password
客户端上启用的身份验证方法为:
debug3: preferred publickey,keyboard-interactive
您可以传递-o PreferredAuthentications=password
给scp
仅使用password
身份验证。