【问题标题】:git clone silent doesn't workgit clone 沉默不起作用
【发布时间】:2016-10-11 07:26:44
【问题描述】:

我正在尝试从 .bat 文件中自动克隆一个 repo。

我使用 ssh,因此 .bat 文件首先将“id_rsa”文件移动到“user\.ssh”文件夹。

然后,当我运行“git clone ssh://repo c:\repo”时,我得到了问题

The authenticity of host can't be established. 
RSA key fingerprint is ........ 
Are you sure you want to continue connecting (yes/no)?

如果我手动回答“是”,它会起作用,并且“known_hosts”文件会在“user\.ssh”文件夹中创建。现在,如果我运行 .bat 文件,git clone 将毫无问题地工作。

我需要通过 .bat 文件静默执行此操作。
我试图从.bat 文件中回答yes 并添加“> /dev/nul 2>&1”,但没有成功。

有什么想法吗?

【问题讨论】:

    标签: windows git ssh


    【解决方案1】:

    您应该尝试修改“Can I automatically add a new host to known_hosts?”,以便将远程服务器添加到您的%USERPROFILE%\.ssh\known_hosts

    即使在您的 Windows bat 脚本中,您也可以使用 /path/to/git/bin/bash -c '...' 命令。

    c:\path\to\git\bin\bash -c 'ssh-keyscan -t rsa,dsa HOST 2>&1 | sort -u - ~/.ssh/known_hosts > ~/.ssh/tmp_hosts && mv ~/.ssh/tmp_hosts ~/.ssh/known_hosts'
    

    这允许您使用 grep、sort 等 Linux 命令,它们是 git 发行版的一部分。

    【讨论】:

      【解决方案2】:

      您使用的是更新的 bash 吗?本质上,您在这里所做的是重定向到 /dev/null,这是“无处”。如果你想默默地做,你可以试试 git clone git@gitlab.com:username/repo directory -q

      【讨论】:

        【解决方案3】:

        为了使它工作,至少现在,我从另一台服务器下载 known_hosts 文件和 id_rsa。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-05
          • 2015-12-12
          • 2016-09-29
          • 1970-01-01
          • 2016-07-11
          • 2020-11-28
          • 2011-05-01
          相关资源
          最近更新 更多