我在亚马逊网络服务上有一个集群,我想用boto.cmdshell通过SSH进入这个集群。然而,也许我不理解要传递的参数。
该节点具有用户ubuntu,但未设置密码。
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效果很好。
任何帮助都是很棒的!
发布于 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文件的末尾添加以下几行:
Host IP_YOU_WANT_TO_CONNECT
IdentityFile path/keyname.pem
StrictHostKeyChecking no或者执行以下操作:
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的操作。但是,我从来没有尝试过这个。
https://stackoverflow.com/questions/34881747
复制相似问题