当前位置: 首页 > 面试题库 >

使用Fabric时连接到〜/ .ssh / config中列出的主机

袁华清
2023-03-14
问题内容

Fabric无法识别自己所在的主机时遇到了麻烦~/.ssh/config

fabfile.py的如下:

from fabric.api import run, env

env.hosts = ['lulu']

def whoami():
    run('whoami')

运行$ fab whoami给出:

[lulu]跑:whoami

致命错误:lulu的名称查找失败

名称lulu在my中~/.ssh/config,如下所示:

Host lulu
     hostname 192.168.100.100
     port 2100
     IdentityFile ~/.ssh/lulu-key

我首先想到的解决,这是添加类似lulu.lulu/etc/hosts(我在Mac),但后来我也必须通过在身份文件面料-
我宁愿让我的认证(即~/.ssh/config)从我的部署分开(即fabfile.py)。

同样,顺便说一句,如果您尝试连接到hosts文件中的主机,fabric.contrib.projects.rsync_project似乎并不会在中确认“端口”
hosts.env(即,如果您使用hosts.env = [lulu:2100]调用rsync_project似乎尝试连接到lulu:21)。

Fabric是否无法识别此lulu名称?


问题答案:

从1.4.0版开始,Fabric使用ssh配置(部分)。但是,您需要使用以下命令显式启用它

env.use_ssh_config = True

fabfile顶部附近的某处。完成此操作后,Fabric应该读取您的ssh配置(~/.ssh/config默认情况下为,或者为env.ssh_config_path)。

一个警告:如果您使用的版本低于1.5.4,则如果env.use_ssh_config设置为中止但没有配置文件,则会中止操作。在这种情况下,您可以使用类似的解决方法:

if env.ssh_config_path and os.path.isfile(os.path.expanduser(env.ssh_config_path)):
    env.use_ssh_config = True


 类似资料:
  • 我在一个代理之下,并且我在相当长一段时间内成功地推进git 现在我无法突然进入git 我已经设置了RSA密钥和代理,并对它们进行了双重检查,但没有结果,git向我抛出了页面标题中显示的错误。

  • 我可以使用此链接https://hyperledger.github.io/composer/latest/tutorials/deploy-to-fabriz-multi-org在一台主机上连接到多个org 为了使用多台主机连接多个组织,我遵循以下链接:https://medium.com/1950labs/publish-a-business-network-in-multi-host-hyp

  • 我正在尝试连接到远程主机以发出命令,但在运行代码时收到以下错误消息: SSH:握手失败:SSH:密钥交换没有通用算法;提供的客户端:[curve25519-sha256@libssh.org ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 difffie-hellman-group14-sha1],提供的服务器:[difffie-h

  • 我正在尝试通过 SSH 连接到 EC2 实例。当我尝试连接到实例时,使用 我收到错误。 EC2实例配置 平台:亚马逊Linux AMI: ami-0841edc20334f9287 实例类型:t2.micro 公共IPv4:关联的弹性IPv4 EC2 实例关联的 VPC 子网配置: 路线表:(目的地-目标) < code>10.0.0.0/24 -本地 <代码>0.0.0.0/0-igw-… AC

  • 我尝试用java连接到Oracle DB,但我遇到了错误,我搜索了很多次,我没有找到帮助我的东西。 当我尝试使用SQL developer连接时,它成功了。 因此,我尝试编写java代码来访问DB,它成功地连接到SSH,但当到达时,我遇到了错误: “java.sql.sqlException:Io异常:Oracle错误ORA-12650” 这是我的职能

  • 我有一台Ubuntu主机和Windows10从机 我需要使用SSH连接从主机(ubuntu)连接从机(windows机) 按照下面的链接 在发射时面临以下问题。请帮帮我 注意:在从机中只安装Git(未安装Jenkins)