首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用botocmdshell通过ssh进入AWS EC2实例

使用botocmdshell通过ssh进入AWS EC2实例
EN

Stack Overflow用户
提问于 2016-01-20 00:18:46
回答 1查看 266关注 0票数 1

我在亚马逊网络服务上有一个集群,我想用boto.cmdshell通过SSH进入这个集群。然而,也许我不理解要传递的参数。

该节点具有用户ubuntu,但未设置密码。

代码语言:javascript
复制
ssh_client = sshclient_from_instance(instanceobj,
                 ssh_key_file =r'C:\Users\Neil\Downloads\sparkcluster.pem',
                 user_name ='ubuntu')`

当我运行代码时,我得到了这个错误:

[Errno 2] No such file or directory: 'C:\\Users\\Neil/.ssh/known_hosts'

这个错误对我没有任何意义:/,我认为我应该为ssh_key_file参数提供pem密钥。我是不是遗漏了什么?我知道使用putty的sshing效果很好。

任何帮助都是很棒的!

EN

回答 1

Stack Overflow用户

发布于 2016-01-20 01:20:13

据我所知,根据github code of boto,还有一个名为host_key_file的参数,如果调用方没有指定它的默认值是~/.ssh/known_hosts。在本例中,您的主目录C:\Users\Neil中没有该文件。因此,你会得到这个错误。

如果您从基于Ubuntu或linux的机器进行连接,则使用

/etc/ssh/ssh_config文件的末尾添加以下几行:

代码语言:javascript
复制
Host IP_YOU_WANT_TO_CONNECT
     IdentityFile path/keyname.pem
     StrictHostKeyChecking no

或者执行以下操作:

代码语言:javascript
复制
sudo touch ~/.ssh/known_hosts

ssh-keyscan -H [hostname],[ip_address] >> ~/.ssh/known_hosts

在第一种情况下,您可能必须将/etc/ssh/ssh_config指定为host_key_file。在第二种情况下,默认参数值将起作用。

对于windows,也有一个等效的选项。如果你搜索,你可以得到很多信息。据我所知,你可以为windows安装openSSH,C:\Program Files\OpenSSH\etc\ssh_config与我在上面发布的windows版相当。在该文件中填写上述信息。然后,您可以将其指定为host_key_file。

我认为您还可以在您的主目录C:\Users\Neil中手动创建一个.ssh/ssh文件,并执行类似于我在上面为linux执行的ssh-keyscan的操作。但是,我从来没有尝试过这个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34881747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档