簡體   English   中英

如何將用戶現有的.ssh目錄掛載到Docker容器中?

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

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