如何将文件从Linux实例正确复制到AWS EC2实例?

时间:2019-09-25 11:52:11

标签: linux amazon-web-services jenkins amazon-ec2 jenkins-pipeline

我正在尝试使用在Linux机器上运行的jenkins将某些文件从linux服务器复制到ec2实例,并且面临以下问题:

debug1: read_passphrase: can't open /dev/tty: No such file or directory
Host key verification failed.
lost connection

我使用的复制命令: sh 'scp -v -i /path/key.pem /path_to_my_file/file.txt user@host:/path_to_target'

2 个答案:

答案 0 :(得分:0)

您似乎正在使用带有密码短语的私钥文件的scp公钥身份验证。 Jenkins脚本未获得通过阶段。

从私钥文件中删除密码保护,或将密钥手动预加载到ssh-agent中,

请参见https://serverfault.com/questions/622767/scp-inside-sh-script-with-passphrase/622799

答案 1 :(得分:0)

通常,我们期望在~/.ssh/文件夹中输入密钥,但是在詹金斯的情况下,最好使用绝对路径。因此,可能有两个原因

  • 未选择正确的密钥,请像/absolute_path/key.pem一样传递完整路径
  •   

    主机密钥验证失败错误消息表示您的SSH   客户端已比较接收到的远程服务器的公钥,并且   注意它与主机密钥的存储版本不匹配   〜/ .ssh / known_hosts文件。

请尝试使用-o StrictHostKeyChecking=no

/cant-establish-ssh-connection

如果仍然存在问题,则可以发布完整的调试日志。

如果存在权限问题,则应复制到用户具有权限的位置。

应该是

scp -v -i /path/key.pem /path_to_my_file/file.txt user@host:/home/user/path_to_target'
相关问题