feat: support for identityfiles to select keys from ssh-agent#355
Merged
shreddedbacon merged 1 commit intomainfrom Jun 27, 2024
Merged
feat: support for identityfiles to select keys from ssh-agent#355shreddedbacon merged 1 commit intomainfrom
shreddedbacon merged 1 commit intomainfrom
Conversation
298aebc to
6866c37
Compare
Member
|
Sorry I know I wasn't requested for a review, but I think the public key comparison could be made a bit more robust by using the library parsing functions. Something like this? var identities []ssh.PublicKey
for _, idFile := range publicKeyIdentityFiles {
keybytes, _ := os.ReadFile(idFile)
pubkey, _ := ssh.ParsePublicKey(keybytes)
identities = append(identities, pubkey)
}
for _, signer := range agentSigners {
for _, identity := range identities {
if bytes.Equal(signer.PublicKey().Marshal(), identity.Marshal()) {
// found a match
}
}
} |
6866c37 to
e211f51
Compare
rocketeerbkw
requested changes
Jun 17, 2024
Member
rocketeerbkw
left a comment
There was a problem hiding this comment.
I pasted the wrong path for my public key and got this error:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x8e5c63]
goroutine 1 [running]:
github.com/uselagoon/lagoon-cli/cmd.publicKey({0xc000267de0, 0x19}, {0x0, 0x0}, {0xc00023d090, 0x1, 0x9fd275?}, 0x5?)
/home/brandon/dev/amazee-io/lagoon-cli/cmd/login.go:56 +0x8c3I immediately knew it was a spelling error, but not everyone will, can you add a "file exists" check similar to how -i has?
Otherwise, this works to use a single key from the ssh-agent as described 🎉
e211f51 to
472c80d
Compare
304e268 to
9077aa1
Compare
Member
Author
|
Updated with file check error handling, so I'll merge this now @rocketeerbkw ? |
9077aa1 to
8033538
Compare
rocketeerbkw
approved these changes
Jun 27, 2024
Member
rocketeerbkw
left a comment
There was a problem hiding this comment.
Got an error message for bad file path, and using the specified key still works 👍
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
General Checklist
This adds support for publickey identities to the config file, which allows for these to select a key if it is found in the ssh-agent
A flag can be provided too
--ssh-publickey /full/path/to/key.pubwhich will override anything defined in configurationAdditionally, a global
--verboseflag is added which can be used to print some verbose output to stderr, this could be used elsewhere in the CLI in the future too. In this PR the flag will print which key is being used or if the agent is being used, which can help users with debugging.Worth noting, once #319 is finalized, keycloak authentication will be the preferred method for authenticating the CLI to get a token, leaving these identity files to only be used for the
sshaspect the CLI provides. But they can still be used for authenticating to get a token via the SSH service still.Closing issues
closes #354