[英]How can I mount a user's existing .ssh directory into a Docker container?
我在Windows 7上使用boot2docker.VirtualBox正在從Windows( c:\\Users\\Me\\.ssh
)安裝我的Windows~ / .ssh目錄,位於boot2docker VM( /c/Users/Me/.ssh
)中。
我的Dockerfile正在配置要用作開發環境的映像。 它將一組SSH密鑰和一個用於自動部署的配置復制到容器中。 這很好用。 當容器啟動時,它會在沒有提示的情況下自動克隆映像中的git存儲庫。
我現在正在嘗試使用相同的圖像,但允許用戶通過docker run -v ...
自己的.ssh目錄掛載,這樣他們就可以選擇使用自己的SSH密鑰了。 當我通過在運行容器的命令中添加-v /home/myself/.ssh:/home/guest/.ssh
來執行此操作時,我收到有關權限過於開放的SSH警告:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/home/guest/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /home/guest/.ssh/id_rsa
我嘗試在ENTRYPOINT腳本中添加一行到chmod -R 700 /home/guest/.ssh
但看起來它無效或者在安裝卷之前執行。
我還嘗試從正在運行的容器中更改/home/guest/.ssh
的權限, /home/guest/.ssh
無法執行此操作。 運行chmod -R 700 /home/guest/.ssh
時沒有錯誤,但權限不會改變。
我在另一個關於Docker卷權限的問題中看到了提問者使用ACL的建議,但我不知道這是不是一個好主意,或者它是否會起作用。
無論如何,允許用戶在Docker容器中使用自己的SSH密鑰和SSH配置的最簡單方法是什么?
稍微有點笨拙,但你可以將.ssh文件復制到一個新目錄中並在shell的啟動時chmod它們。
即通過卷為容器提供SSH文件,但使用shell ~/.profile
將它們復制到〜/ .ssh。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.