diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,12 @@
 # Changelog
 
+## 1.0.4.3
+
+Bug fixes:
+
+* Don't delete contents of ~/.ssh when using `stack clean --full` with Docker
+  enabled [#2000](https://github.com/commercialhaskell/stack/issues/2000)
+
 ## 1.0.4.2
 
 Build with path-io-1.0.0. There are no changes in behaviour from 1.0.4,
diff --git a/src/Stack/Docker.hs b/src/Stack/Docker.hs
--- a/src/Stack/Docker.hs
+++ b/src/Stack/Docker.hs
@@ -260,8 +260,6 @@
        <*> hIsTerminalDevice stderr
        <*> (parseAbsDir =<< getHomeDirectory)
      isStdoutTerminal <- asks getTerminal
-     let sshDir = homeDir </> sshRelDir
-     sshDirExists <- doesDirExist sshDir
      let dockerHost = lookup "DOCKER_HOST" env
          dockerCertPath = lookup "DOCKER_CERT_PATH" env
          bamboo = lookup "bamboo_buildKey" env
@@ -309,6 +307,19 @@
      liftIO
        (do updateDockerImageLastUsed config iiId (toFilePath projectRoot)
            mapM_ (ensureDir) [sandboxHomeDir, stackRoot])
+     -- Since $HOME is now mounted in the same place in the container we can
+     -- just symlink $HOME/.ssh to the right place for the stack docker user
+     let sshDir = homeDir </> sshRelDir
+     sshDirExists <- doesDirExist sshDir
+     sshSandboxDirExists <-
+         liftIO
+             (Files.fileExist
+                 (toFilePathNoTrailingSep (sandboxHomeDir </> sshRelDir)))
+     when (sshDirExists && not sshSandboxDirExists)
+         (liftIO
+             (Files.createSymbolicLink
+                 (toFilePathNoTrailingSep sshDir)
+                 (toFilePathNoTrailingSep (sandboxHomeDir </> sshRelDir))))
      containerID <- (trim . decodeUtf8) <$> readDockerProcess
        envOverride
        (concat
@@ -320,6 +331,7 @@
           ,"-e","HOME=" ++ toFilePathNoTrailingSep sandboxHomeDir
           ,"-e","PATH=" ++ T.unpack newPathEnv
           ,"-e","PWD=" ++ toFilePathNoTrailingSep pwd
+          ,"-v",toFilePathNoTrailingSep homeDir ++ ":" ++ toFilePathNoTrailingSep homeDir
           ,"-v",toFilePathNoTrailingSep stackRoot ++ ":" ++ toFilePathNoTrailingSep stackRoot
           ,"-v",toFilePathNoTrailingSep projectRoot ++ ":" ++ toFilePathNoTrailingSep projectRoot
           ,"-v",toFilePathNoTrailingSep sandboxHomeDir ++ ":" ++ toFilePathNoTrailingSep sandboxHomeDir
@@ -327,10 +339,6 @@
          ,case muserEnv of
             Nothing -> []
             Just userEnv -> ["-e","USER=" ++ userEnv]
-         ,if sshDirExists
-          then ["-v",toFilePathNoTrailingSep sshDir ++ ":" ++
-                     toFilePathNoTrailingSep (sandboxHomeDir </> sshRelDir)]
-          else []
          ,case msshAuthSock of
             Nothing -> []
             Just sshAuthSock ->
diff --git a/stack.cabal b/stack.cabal
--- a/stack.cabal
+++ b/stack.cabal
@@ -1,5 +1,5 @@
 name: stack
-version: 1.0.4.2
+version: 1.0.4.3
 cabal-version: >=1.10
 build-type: Simple
 license: BSD3
@@ -213,7 +213,7 @@
         project-template ==0.2.*,
         uuid >=1.3.11 && <1.4,
         zip-archive >=0.2.3.7 && <0.3,
-        hpack >=0.9.0 && <0.10
+        hpack >=0.9.0 && <0.12
     default-language: Haskell2010
     hs-source-dirs: src/
     ghc-options: -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates
@@ -249,8 +249,8 @@
         mtl >=2.1.3.1 && <2.3,
         optparse-applicative >=0.11.0.2 && <0.13,
         path >=0.5.3 && <0.6,
-        path-io >=0.3.1 && <1.1,
-        stack >=1.0.4.2 && <1.1,
+        path-io >=1.0.0 && <2.0.0,
+        stack >=1.0.4.3 && <1.1,
         text >=1.2.0.4 && <1.3,
         transformers >=0.4.2.0 && <0.5
     default-language: Haskell2010
@@ -277,10 +277,10 @@
         http-conduit >=2.1.8 && <2.2,
         monad-logger >=0.3.17 && <0.4,
         path >=0.5.3 && <0.6,
-        path-io >=0.3.1 && <1.1,
+        path-io >=1.0.0 && <2.0.0,
         resourcet >=1.1.7 && <1.2,
         retry >=0.6 && <0.8,
-        stack >=1.0.4.2 && <1.1,
+        stack >=1.0.4.3 && <1.1,
         temporary >=1.2.0.4 && <1.3,
         text >=1.2.2.0 && <1.3,
         transformers >=0.4.2.0 && <0.5
