diff --git a/src/framework/utils/ssh/ssh.go b/src/framework/utils/ssh/ssh.go index 7790f17d..1cb41b59 100644 --- a/src/framework/utils/ssh/ssh.go +++ b/src/framework/utils/ssh/ssh.go @@ -135,8 +135,12 @@ func (c *ConnSSH) SendToAuthorizedKeys() error { return err } authorizedKeysEntry := fmt.Sprintln(strings.TrimSpace(publicKey)) - cmdStr := "echo '" + authorizedKeysEntry + "' >> ~/.ssh/authorized_keys" - _, err = c.RunCMD(cmdStr) + cmdStrArr := []string{ + fmt.Sprintf("sudo chown %s:%s /home/%s/.ssh && sudo chmod 700 /home/%s/.ssh", c.User, c.User, c.User, c.User), + fmt.Sprintf("sudo chown %s:%s /home/%s/.ssh/authorized_keys && sudo chmod 600 /home/%s/.ssh/authorized_keys", c.User, c.User, c.User, c.User), + fmt.Sprintf("sudo echo '%s' >> ~/.ssh/authorized_keys", authorizedKeysEntry), + } + _, err = c.RunCMD(strings.Join(cmdStrArr, " && ")) if err != nil { logger.Errorf("SendAuthorizedKeys echo err %s", err.Error()) return err