我从文档中得到以下简单的fabfile.py:
from fabric.api import run
def host_type():
run('uname -s')
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下命令运行它:
fab -H 192.168.0.201 host_type
Run Code Online (Sandbox Code Playgroud)
但得到错误:
me@ubuntu:~/me$ fab -H 192.168.0.201 host_type
[192.168.0.201] run: uname -s
Password for me@192.168.0.201:
Fatal error: No existing session
Aborting.
Run Code Online (Sandbox Code Playgroud)
我可以ssh好到192.168.0.201.
有任何想法吗?
Tro*_*ell 22
简短回答:如果您有多个SSH公钥并且想要使用密码身份验证,请尝试使用'-k'和'-a'命令行标志.
当我遇到这个错误时,它是一个非常独特的情况的结果.我在〜/ .ssh中有许多不同的公钥.我还将许多公钥添加到我的SSH代理中.我试图只使用密码使用Fabric.
这是我在服务器身份验证日志中看到的内容:
Nov 7 07:56:02 ubuntu sshd[1862]: Disconnecting: Too many authentication failures for user [preauth]
Nov 7 07:56:08 ubuntu sshd[1864]: Disconnecting: Too many authentication failures for user [preauth]
Run Code Online (Sandbox Code Playgroud)
我已经指示Fabric使用非公钥来验证'-k'命令行标志.我错过了Fabric(通过Paramiko)默认使用SSH代理可用的任何东西.在我的例子中,所有这些公钥都是在SSH代理注册的,所以告诉Fabric不要使用公钥是一个不完整的解决方案.我添加了'-a'命令行标志,告诉Fabric不要查询SSH代理.最后,我可以使用密码身份验证通过Fabric连接到服务器.
Geo*_*tin -1
嗯,只是猜测......你试过这个吗?
def host_type():
run('uname -s', pty=True)
Run Code Online (Sandbox Code Playgroud)
我记得我将此常见问题解答条目应用于类似的问题:http://docs.fabfile.org/en/1.0.0/faq.html#why-do-i-sometimes-see-err-stdin-is-not-阿蒂
| 归档时间: |
|
| 查看次数: |
7216 次 |
| 最近记录: |