期望使用RSA私钥的脚本被ec2实例拒绝

时间:2014-12-19 23:33:55

标签: shell amazon-ec2 rsa sftp expect

这是我找到的用于输入sftp协议密码的预期脚本示例。现在,我想通过脚本将文件从一个ec2实例复制到另一个实例。后来我想使用sftp在亚马逊服务器和另一台外部服务器之间传输文件,所以请不要给我任何特定的亚马逊来解决这个问题。当我运行此脚本时,连接被拒绝,我相信这是因为我需要为.pem文件提供rsa密钥,但是我不知道如何执行此操作或修改我的脚本来执行此操作。我似乎找不到这个具体问题的答案。任何帮助将不胜感激。谢谢。

#!/usr/bin/expect

spawn sftp ec2-user@mywebsite.com
expect "password:" 
send "[rsa private key]\n"
expect "sftp>"
send "cd \n"
expect "sftp>"
send "put /home/ec2-user/[file]\n"
expect "sftp>"
send "exit\n"
interact

1 个答案:

答案 0 :(得分:1)

spawn sftp -i /path/to/pem/file ec2-user@mywebsite.com

并非所有sftp实现都支持 -i 选项来传递您的私钥。在这种情况下使用:

spawn sftp -oIdentityFile=/path/to/pem/file ec2-user@mywebsite.com

-o 可用于以ssh_config中使用的格式将选项传递给ssh。
有关详细信息:man sftp