我正在 GitHub Actions 中創建一個 yaml 檔案,以在使用 terraform 創建的 Linux 服務器上安裝軟體。使用管道我可以 ssh 進入 linux 服務器。在其中一臺服務器中,我正在創建一個 .ssh 目錄和一個 id_rsa 檔案(其中包含另一臺服務器的私鑰),我打算用它來 scp 到另一臺服務器以復制一些檔案。我使用 echo 命令將私鑰復制到 id_rsa 檔案。我想查看 id_rsa 的內容以確保復制了正確的私鑰。我正在使用 cat 命令,但它不起作用。這是我的代碼
ssh chefnode -T
ssh chefnode -t 'sudo apt-get update && sudo apt-get upgrade -y'
ssh chefnode -t 'echo "$INFRA_PRIVATE_KEY" > "/home/'$SSH_NODE_USER'/.ssh/id_rsa"'
ssh chefnode -t 'cat "/home/'$SSH_NODE_USER'/.ssh/id_rsa"'
命令運行,但 cat 命令不回傳任何輸出。它不會失敗。管道通過,但此命令不呈現任何輸出。我也嘗試了以下組合,但沒有任何效果
ssh chefnode -t 'cat /home/"$SSH_NODE_USER"/.ssh/id_rsa'
ssh chefnode -t 'cat /home/$SSH_NODE_USER/.ssh/id_rsa'
ssh chefnode -t cat /home/'$SSH_NODE_USER'/.ssh/id_rsa
ssh chefnode -t cat /home/$SSH_NODE_USER/.ssh/id_rsa
我也試過這個
ssh chefnode -t 'echo "$INFRA_PRIVATE_KEY" > "/home/'$SSH_NODE_USER'/.ssh/id_rsa"'
ssh chefnode -t 'cd "/home/'$SSH_NODE_USER'/.ssh";"cat id_rsa"'
說找不到 cat 命令。我只想查看 id_rsa 檔案的內容,不知道我做錯了什么。
uj5u.com熱心網友回復:
ssh chefnode -t 'echo "$INFRA_PRIVATE_KEY" > "/home/'$SSH_NODE_USER'/.ssh/id_rsa"'
除非$INFRA_PRIVATE_KEY是chefnode上登錄環境設定的變數,否則很可能為空。
我假設您想在本地控制臺上發送一個變數集,但正如所寫的那樣,這實際上發送"$INFRA_PRIVATE_KEY"到服務器,它可能擴展為空(即檔案實際上是空的)。
你可能想要類似的東西:
ssh chefnode -t 'echo "'"$INFRA_PRIVATE_KEY"'" > "/home/'$SSH_NODE_USER'/.ssh/id_rsa"'
它在本地擴展變數,然后用引號發送它(假設變數值本身沒有嵌入引號)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/523736.html
標籤:linuxSSH猫
上一篇:LinuxBash:如何將$var的值放入“$”以使其$($var)的$var大于9?
下一篇:如何在手風琴的加減號圖示之間切換
