func (s *AuthKeysSuite) TestReadAuthorizedKeys(c *gc.C) { writeFile(c, filepath.Join(s.dotssh, "id_rsa.pub"), "id_rsa") writeFile(c, filepath.Join(s.dotssh, "identity.pub"), "identity") writeFile(c, filepath.Join(s.dotssh, "test.pub"), "test") keys, err := config.ReadAuthorizedKeys("") c.Assert(err, gc.IsNil) c.Assert(keys, gc.Equals, "id_rsa\nidentity\n") keys, err = config.ReadAuthorizedKeys("test.pub") // relative to ~/.ssh c.Assert(err, gc.IsNil) c.Assert(keys, gc.Equals, "test\n") }
func (s *AuthKeysSuite) TestReadAuthorizedKeysClientKeys(c *gc.C) { keydir := filepath.Join(s.dotssh, "juju") err := ssh.LoadClientKeys(keydir) // auto-generates a key pair c.Assert(err, gc.IsNil) pubkeyFiles := ssh.PublicKeyFiles() c.Assert(pubkeyFiles, gc.HasLen, 1) data, err := ioutil.ReadFile(pubkeyFiles[0]) c.Assert(err, gc.IsNil) prefix := strings.Trim(string(data), "\n") + "\n" writeFile(c, filepath.Join(s.dotssh, "id_rsa.pub"), "id_rsa") writeFile(c, filepath.Join(s.dotssh, "test.pub"), "test") keys, err := config.ReadAuthorizedKeys("") c.Assert(err, gc.IsNil) c.Assert(keys, gc.Equals, prefix+"id_rsa\n") keys, err = config.ReadAuthorizedKeys("test.pub") c.Assert(err, gc.IsNil) c.Assert(keys, gc.Equals, prefix+"test\n") keys, err = config.ReadAuthorizedKeys("notthere.pub") c.Assert(err, gc.IsNil) c.Assert(keys, gc.Equals, prefix) }
func (s *AuthKeysSuite) TestReadAuthorizedKeysErrors(c *gc.C) { _, err := config.ReadAuthorizedKeys("") c.Assert(err, gc.ErrorMatches, "no public ssh keys found") _, err = config.ReadAuthorizedKeys(filepath.Join(s.dotssh, "notthere.pub")) c.Assert(err, gc.ErrorMatches, "no public ssh keys found") }