无法通过 SCP 发送文件

无法通过 SCP 发送文件

我尝试使用该scp命令-i将文件从本地机器传输到远程 EC2 实例:

Akhis-Macbook-Pro:~ aswinakhilesh$ sudo scp -i Mykey.pem FileA [email protected]:/home/FileA

我没有复制文件,而是收到以下消息:

 Agent pid 2624

Akhis-Macbook-Pro:~ aswinakhilesh$ Identity added:
/home/.ssh/id_rsa (/home/id_rsa)

我的.sshec2 实例中的文件夹有以下文件:

authorized_keys  
id_rsa  [Same as Mykey.pm, which is used with the -i option before]
known_hosts

如果有人能帮助我那就太好了!

答案1

我刚刚遇到了同样的问题。解决方案是有人指出的(如果你有

评估`ssh-agent`

将其更改为

eval `ssh-agent' > /dev/null

重要的是,这需要发生在偏僻的主持人。

答案2

你的 .bashrc 里有什么?

sshd 在使用 scp 连接时将在您的主目录中获取 .bashrc。该文件中似乎包含类似eval“ssh-agent”的内容。

如果 .bashrc 在获取源时将任何内容发送到 STDOUT,则会导致 scp(以及其他程序)出现问题。有几种不同的方法可以解决这个问题,最简单的方法是更改​​为:

eval`ssh-agent` > /dev/null

您还可以测试 $PS1 是否设置以确定它是否是交互式 shell,然后使用条件语句。

答案3

对我来说,你的目标路径似乎不正确,至少普通用户不应该有直接写入的权限/home然而这会导致命令的权限被拒绝scp,但你仍然可以使用

代替:
[email protected]:/home/FileA

下列:
[email protected]:~/

答案4

如果在运行 时打印出某些内容,则连接会中断。登录远程主机时,scp您可能正在运行一些底层命令(或类似命令)。即使对于非交互式登录,例如当您使用 时,它也会继续在目标主机中获取登录脚本。.bashrcscp

通过 SSH 连接到远程主机并检查打印某些内容的命令来修复此问题。然后,您可以尝试注释它们(进行快速测试)或重定向它们的输出以/dev/null避免下次发生这种情况。

相关内容