func (s *AuthorisedKeysKeysSuite) TestAddDuplicateKey(c *gc.C) { key := sshtesting.ValidKeyOne.Key + " user@host" err := ssh.AddKeys(testSSHUser, key) c.Assert(err, gc.IsNil) moreKeys := []string{ sshtesting.ValidKeyOne.Key + " user@host", sshtesting.ValidKeyTwo.Key + " yetanotheruser@host", } err = ssh.AddKeys(testSSHUser, moreKeys...) c.Assert(err, gc.ErrorMatches, "cannot add duplicate ssh key: "+sshtesting.ValidKeyOne.Fingerprint) }
func (s *AuthorisedKeysKeysSuite) TestAddNewKey(c *gc.C) { key := sshtesting.ValidKeyOne.Key + " user@host" err := ssh.AddKeys(testSSHUser, key) c.Assert(err, gc.IsNil) actual, err := ssh.ListKeys(testSSHUser, ssh.FullKeys) c.Assert(err, gc.IsNil) c.Assert(actual, gc.DeepEquals, []string{key}) }
func (s *AuthorisedKeysKeysSuite) TestAddKeyWithoutComment(c *gc.C) { keys := []string{ sshtesting.ValidKeyOne.Key + " user@host", sshtesting.ValidKeyTwo.Key, } err := ssh.AddKeys(testSSHUser, keys...) c.Assert(err, gc.ErrorMatches, "cannot add ssh key without comment") }
func (s *AuthorisedKeysKeysSuite) TestAddKeepsUnrecognised(c *gc.C) { writeAuthKeysFile(c, []string{sshtesting.ValidKeyOne.Key, "invalid-key"}) anotherKey := sshtesting.ValidKeyTwo.Key + " anotheruser@host" err := ssh.AddKeys(testSSHUser, anotherKey) c.Assert(err, gc.IsNil) actual, err := ssh.ReadAuthorisedKeys(testSSHUser) c.Assert(err, gc.IsNil) c.Assert(actual, gc.DeepEquals, []string{sshtesting.ValidKeyOne.Key, "invalid-key", anotherKey}) }
func (s *AuthorisedKeysKeysSuite) TestAddMoreKeys(c *gc.C) { firstKey := sshtesting.ValidKeyOne.Key + " user@host" writeAuthKeysFile(c, []string{firstKey}) moreKeys := []string{ sshtesting.ValidKeyTwo.Key + " anotheruser@host", sshtesting.ValidKeyThree.Key + " yetanotheruser@host", } err := ssh.AddKeys(testSSHUser, moreKeys...) c.Assert(err, gc.IsNil) actual, err := ssh.ListKeys(testSSHUser, ssh.FullKeys) c.Assert(err, gc.IsNil) c.Assert(actual, gc.DeepEquals, append([]string{firstKey}, moreKeys...)) }
func (s *workerSuite) SetUpTest(c *gc.C) { s.JujuConnSuite.SetUpTest(c) // Default ssh user is currently "ubuntu". c.Assert(authenticationworker.SSHUser, gc.Equals, "ubuntu") // Set the ssh user to empty (the current user) as required by the test infrastructure. s.PatchValue(&authenticationworker.SSHUser, "") // Replace the default dummy key in the test environment with a valid one. // This will be added to the ssh authorised keys when the agent starts. s.setAuthorisedKeys(c, sshtesting.ValidKeyOne.Key+" firstuser@host") // Record the existing key with its prefix for testing later. s.existingEnvKey = sshtesting.ValidKeyOne.Key + " Juju:firstuser@host" // Set up an existing key (which is not in the environment) in the ssh authorised_keys file. s.existingKeys = []string{sshtesting.ValidKeyTwo.Key + " existinguser@host"} err := ssh.AddKeys(authenticationworker.SSHUser, s.existingKeys...) c.Assert(err, gc.IsNil) var apiRoot *api.State apiRoot, s.machine = s.OpenAPIAsNewMachine(c) c.Assert(apiRoot, gc.NotNil) s.keyupdaterApi = apiRoot.KeyUpdater() c.Assert(s.keyupdaterApi, gc.NotNil) }