gpt4 book ai didi

git - 如何让 GIT/SSH 在特定位置查找 "known_hosts"?

转载 作者:行者123 更新时间:2023-12-02 13:56:33 30 4
gpt4 key购买 nike

我在 Ubuntu Linux 上使用 GIT 作为自动构建过程的一部分。因为它是一个自动化的构建过程,所以最好将所有配置都放在版本控制中,这样我就不必在配置更改时登录每个构建代理。

为了让它工作,我有一个私钥(具有只读 repo 访问权限)和一个 known_hosts 文件 checkin 到版本控制。

我将 HOME 环境变量设置为我的版本控制 (build/ssh_home) 中的一个位置,以允许 GIT 找到我的 known_hosts 文件 (build/ssh_home/.ssh/known_hosts)。

我使用以下命令“激活”私钥并从 GIT 中提取。 “git clone”步骤类似。

ssh-agent bash -c "echo $HOME; ssh-add '${deploymentKey}' >/dev/null 2>&1; git pull ${repository} --quiet"

这适用于 Windows。但是,在 Ubuntu Linux 上,这还不够。

“HOME”环境变量设置如下(在 bash 脚本中)
export HOME=`pwd`/build/ssh_home

但是,它显然没有使用正确的 known_hosts 文件,它仍在尝试使用 ~/.ssh/known_hosts 中的文件,以下消息中引用的路径证明了这一点。
The authenticity of host 'bitbucket.org (131.103.20.168)' can't be established. 
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/home/myusername/.ssh/known_hosts).

如何让 GIT (SSH) 在特定位置(不在我的主目录中)使用 known_hosts 文件?

编辑:

我的“build/ssh_home”目录的权限(在评论中要求)
ls -la build/ssh_home
total 16
drwx------ 3 ben ben 4096 Jun 18 10:52 .
drwxrwxr-x 39 ben ben 4096 Jun 18 10:52 ..
-rw------- 1 ben ben 209 Jun 18 10:52 readme.txt
drwx------ 2 ben ben 4096 Jun 18 10:52 .ssh

build/ssh_home/.ssh 的权限
ls -la build/ssh_home/.ssh
total 12
drwx------ 2 ben ben 4096 Jun 18 10:52 .
drwx------ 3 ben ben 4096 Jun 18 10:52 ..
-rw------- 1 ben ben 2402 Jun 18 10:52 known_hosts

我的“~/.ssh”目录的权限(在评论中要求)
myusername@myhostname:~$ ls -la ~/.ssh
total 24
drwxr-xr-x 2 root root 4096 Jun 29 10:28 .
drwxr-xr-x 16 ben ben 4096 May 21 15:39 ..
-rw-r--r-- 1 root root 427 May 19 11:27 authorized_keys
-rw------- 1 root root 1679 May 19 11:27 bitbucket
-rw-r--r-- 1 root root 398 May 19 11:27 bitbucket.pub
-rw-r--r-- 1 root root 63 May 19 11:27 config

最佳答案

您可以指定 known_hosts 的位置归档:ssh -o UserKnownHostsFile=/path/to/known_hosts例如,如果你想测试到 GitHub 的 SSH 连接,你可以这样做:ssh -o UserKnownHostsFile=/path/to/known_hosts -T git@github.com这会将 github.com(IP 地址)添加到 known_hosts文件,然后您会看到如下消息:

Hi <github_username>! You've successfully authenticated, but GitHub does not provide shell access.
然后你可以做 cat /path/to/known_hosts检查内容。
我的看起来像:
github.com,192.30.255.112 ssh-rsa ...
...
...==
192.30.255.113 ssh-rsa ...
...
...==

关于git - 如何让 GIT/SSH 在特定位置查找 "known_hosts"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31106767/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com