簡體   English   中英

ssh-將命令參數添加到 su

[英]ssh-add on command argument to su

我想啟動一個 docker 容器,在啟動時添加一個 ssh 密鑰:

我的入口點如下所示:

#!/bin/bash
set -e

service ssh start

su anotherUser -s /bin/bash -c "eval \"$(ssh-agent)\" && ssh-add /Keys/id_rsa"

我看過很多使用sudo的帖子,但我沒有sudo可用。 我找到了這個解決方案,但在啟動時它向我顯示:

[....] 啟動 OpenBSD 安全 Shell 服務器:sshd 7 [好的 8。
代理 pid 36
連接到代理時出錯:權限被拒絕

但是當我在提示符處執行相同的行時,一切正常:

xxx# su anotherUser
anotherUser@xxx:~$ eval $(ssh-agent)
代理 pid 47
anotherUser@xxx:~$ ssh-add /keys/id_rsa
添加的身份:/keys/id_rsa (yyy@yyy-HP-EliteBook-850-G4)

su運行之前,您正在運行ssh-agent $需要轉義,以便將文字命令替換傳遞給bash以執行。

su anotherUser -s /bin/bash -c 'eval $(ssh-agent) && ssh-add /Keys/id_rsa'

(未經測試;可能需要有關容器如何運行以及為什么ssh-add需要以不同用戶身份運行的更多詳細信息。)

不過,使用ssh-agent運行入口點可能更簡單。 例如,

# In the Dockerfile...
ENTRYPOINT ["ssh-agent", "entry.sh"]

entry.sh中,您的環境已經可以訪問代理了。

#!/bin/bash
set -e

service ssh start

su anotherUser -s ssh-add /Keys/id_rsa

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM