[英]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.