diff options
author | Joey Hess <joey@kitenet.net> | 2012-09-10 21:55:59 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-09-10 21:55:59 -0400 |
commit | d19bbd29d8f473eae1aa1fa76c22e5374922c108 (patch) | |
tree | ffb8391884b271a822f1e031d1051219093b267a /Assistant/Ssh.hs | |
parent | a41255723c55d0046e8a9953a7ebaef9d2196bb5 (diff) |
pairing probably works now (untested)
Diffstat (limited to 'Assistant/Ssh.hs')
-rw-r--r-- | Assistant/Ssh.hs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/Assistant/Ssh.hs b/Assistant/Ssh.hs index c158f7dd2..ad0749fb7 100644 --- a/Assistant/Ssh.hs +++ b/Assistant/Ssh.hs @@ -7,7 +7,7 @@ module Assistant.Ssh where -import Common +import Common.Annex import Utility.TempFile import Data.Text (Text) @@ -43,6 +43,10 @@ sshDir = do home <- myHomeDir return $ home </> ".ssh" +{- user@host or host -} +genSshHost :: Text -> Maybe Text -> String +genSshHost host user = maybe "" (\v -> T.unpack v ++ "@") user ++ T.unpack host + {- host_dir, with all / in dir replaced by _, and bad characters removed -} genSshRepoName :: String -> FilePath -> String genSshRepoName host dir @@ -171,3 +175,12 @@ setupSshKeyPair sshkeypair sshdata = do sshpubkeyfile = sshprivkeyfile ++ ".pub" mangledhost = "git-annex-" ++ T.unpack (sshHostName sshdata) ++ user user = maybe "" (\u -> "-" ++ T.unpack u) (sshUserName sshdata) + +{- Does ssh have known_hosts data for a hostname? -} +knownHost :: Text -> IO Bool +knownHost hostname = do + sshdir <- sshDir + ifM (doesFileExist $ sshdir </> "known_hosts") + ( not . null <$> readProcess "ssh-keygen" ["-F", T.unpack hostname] + , return False + ) |