From 675621d903aeb9928955483a58c2e5d463d31a35 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 11 Sep 2012 00:23:34 -0400 Subject: clean up authorized_keys handling Including rollback of adding the key when a pairing response gets canceled by the user. --- Assistant/Pairing/MakeRemote.hs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'Assistant/Pairing/MakeRemote.hs') diff --git a/Assistant/Pairing/MakeRemote.hs b/Assistant/Pairing/MakeRemote.hs index 9e65f4d13..1b39fcff7 100644 --- a/Assistant/Pairing/MakeRemote.hs +++ b/Assistant/Pairing/MakeRemote.hs @@ -19,6 +19,16 @@ import Assistant.MakeRemote import Network.Socket import qualified Data.Text as T +{- Authorized keys are set up before pairing is complete, so that the other + - side can immediately begin syncing. -} +setupAuthorizedKeys :: PairMsg -> IO () +setupAuthorizedKeys msg = do + validateSshPubKey pubkey + unlessM (liftIO $ addAuthorizedKeys False pubkey) $ + error "failed setting up ssh authorized keys" + where + pubkey = remoteSshPubKey $ pairMsgData msg + {- When pairing is complete, this is used to set up the remote for the host - we paired with. -} finishedPairing :: ThreadState -> DaemonStatusHandle -> ScanRemoteMap -> PairMsg -> SshKeyPair -> IO () -- cgit v1.2.3