我已經在這個問題上作業了大約2個小時,我完全不知所措。我知道這個問題之前已經有人問過,也有人回答過,但我完全被難住了。
我正試圖通過 ansible 將 github repo 克隆到虛擬機上。
當我這樣做的時候,我得到了下面的錯誤:
警告。身份檔案/home/REMOTE_USER/.ssh/id_ed25519無法訪問。沒有這樣的檔案或目錄
[email protected]。權限被拒絕(publickey)
fatal: Could not read from remote repository.
請確認你有正確的訪問權限,并且該版本庫存在。
以下是處理github克隆的ansible playbook:
。
- name: Create SSH Key
hosts: Vm
remote_user: REMOTE_USER
變數:
local_keyfile: home/LOCAL_USER/.ssh/id_ed25519
public_key: "{{ lookup('file', '/home/LOCAL_USER/.ssh/id_ed25519.pub') }}"/span>
remote_keyfile: /home/REMOTE_USER/.ssh/id_ed25519
repository: "[email protected]:GITHUB_USERNAME/GITHUB_REPO.git"
任務:
- 名稱。 添加 public key to authorized key >。
lineinfile:/span>
path: home/REMOTE_USER/.ssh/authorized_keys
line: "{{ public_key }}}"
- name:/span> Copy SSH Key
拷貝:
src: "{{ local_keyfile }}"
dest: "{{ remote_keyfile }}"
所有者: REMOTE_USER
組: REMOTE_USER
mode: 0600
- name: 配置 SSH to 使用 ansible key for github. com
模板:
src: templates/ssh_config.j2
dest: home/REMOTE_USER/.ssh/config
所有者: REMOTE_USER
組: REMOTE_USER
mode: 0644
- name: Clone repo
git:/span>
dest: home/REMOTE_USER/PATH_TO_REPO
repo: "{{ repository }}"
key_file: " {{ remote_keyfile }}"
clone: yes
update: yes
- 在遠程主機的 authorized_keys 中添加了公鑰 。
- 添加了
Host github.com
身份檔案 PATH_TO_PRIVATE_KEY
僅限Identities yes
到遠程主機上的.ssh/config檔案。
- 創建了一個ansible.cfg檔案,其中有:
[defaults]。
transport = ssh
sudo_flags = -HE
[ssh_connection]
ssh_args = -o ForwardAgent=yes
- 以
root&REMOTE_USER的身份運行playbook。
- 洗掉了
Copy SSH Key任務 。
我對所有這些設定進行了亂七八糟的處理,但它們的組合都不起作用。如果我手動 SSH 進入虛擬機,我可以運行 git clone [email protected]:GITHUB_USER/REPO 并且作業正常(但提示我 SSH 密鑰的口令)
REMOTE_USER對私鑰、被克隆到的 repo 的目錄、authorized_keys、公鑰和組態檔有權限。
我從 stackoverflow、其他 stackexchange 網站和一般互聯網上讀到的所有嘗試,到目前為止都沒有成功。
我希望得到任何指導,告訴我如何解決這個問題,而不涉及為 git 克隆使用 HTTPS。
uj5u.com熱心網友回復:
我能夠在本地重現你的問題,我發現問題在于字串中的前導空格
key_file: " {{ remote_keyfile }}"
如果你去掉第一個引號后的空格,它應該可以作業。
我需要注意的是,我在本地測驗時沒有在鑰匙上設定口令。我想密碼可能是git模塊的一個問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/317537.html
標籤:
