我正在尝试使用在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
'
答案 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'