Welcome to the mysterious secret page...
I'm Timothy, a full-stack engineer.
📫 How to reach me:
- Email: [email protected]
- Telegram: @imTimothy
A simple and powerful SSH keys manager
Home Page: https://timothyye.github.io/skm
License: MIT License
Welcome to the mysterious secret page...
I'm Timothy, a full-stack engineer.
📫 How to reach me:
As title, when use "display" command, skm uses a relative path from default ssh path.
It shows an error like:
% skm dp
Failed to read ../.skm/github/id_rsa.pub
small bug for windows
Hello.
First of all, thanks for making a great tool.
By the way, I want to add cli_test.go
.
Perhaps a different name might be better.
This file actually execute main.go
and tests its standard output.
If you give permission I would like to write this test.
How about?
package main
import (
"bytes"
"fmt"
"strings"
"testing"
)
func TestRun_versionFlag(t *testing.T) {
outStream, errStream := new(bytes.Buffer), new(bytes.Buffer)
cli := &CLIoutStream: outStream, errStream: errStream
args := strings.Split("skm -version", " ")
status := cli.Run(args)
if status != ExitCodeOK
t.Errorf("ExitStatus=%d, want %d", status, ExitCodeOK)
}
expected := fmt.Sprintf("skm version %s", Version)
if !strings.Contains(errStream.String(), expected)
t.Errorf("Output=%q, want %q", errStream.String(), expected)
}
}
When the SSH creation fails skm displays a check mark and error text in green.
Should be a cross and text in red.
Hello,
thank you for this SSH key manager. It's really problematic to manage more than one key without it.
I found an issue when I had empty .skm directory.
skm init
says SSH key store initialized!
and it won't copy the SSH keys to the .skm directory.
I have a working fix and I would like to create a PR if you don't mind.
Hi Timothy
There is another older SSH Key manager which uses the name skm
https://sites.google.com/site/jeromeboismartel/code-s-corner/ssh-key-management-with-skimp
I wonder if it wouldn't be better to rename your project so it doesn't clash. Even sskm or mks or something similar?
Michael
Hi :)
First of all thank you very much for creating this! Finally an easy way for me to switch between multiple SSH keys without getting a headache 😄
Would it perhaps make sense to use restic for creating and restoring backups as an alternative to the tgz approach? I've been doing that recently with https://github.com/zerok/clocked and it worked extremely well so far 😄
Hello!
There is hardcoded version in help menu. It always shows 0.5 and confuses after updated.
Line 9 in f263af3
Private key, which created by skm, can't be transferred to pem format, the error is below:
140138626492304:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:707:Expecting: ANY PRIVATE KEY
My command is openssl rsa -in ./id_rsa -out id_rsa.pem
.
==> Downloading https://download.xiaozhou.xyz/skm-mac64-0.8.6.tar.gz
curl: (60) SSL certificate problem: certificate has expired
More details here: https://curl.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
Error: skm: Failed to download resource "skm"
Download failed: https://download.xiaozhou.xyz/skm-mac64-0.8.6.tar.gz
i have 3 ssh key in ~/.ssh folder and i use skm init
is only import default key id_rsa
how import all ssh key or how import existing ssh key?
Very nice tool, thank you!
I have a small suggestion for how I think the file handling around the keys should work
I and I suppose most other people prefer not moving the ssh keys into .skm
, but rather to have symbolic links to the ssh keys created in .skm
. Right now, I have the original keys in .skm and symlink them to .ssh but prefer to have it the other way around.
I tried to have the original files in .ssh
and symlink them to .skm
, but this resulted in the files not being readable:
✔ Found 2 SSH key(s)!
Failed to read /Users/[[redacted]]/.skm/[[redacted]]@[[redacted]].com/id_rsa.pub
[[redacted]]@[[redacted]].com [] []
Failed to read /Users/[[redacted]]/.skm/[[redacted]]@[[redacted]].com/id_rsa.pub
[[redacted]]@[[redacted]].com [] []
I suppose currently symlinks are not resolved. By following symlinks, this should be possible to do if one would want to, without changing the default behavior of skm.
the name usually is short, so needs a desc
For cases where copying the key via ssh-copy-id not applicable.
eg: adding key to github, cloud provider consoles or other web interfaces.
Steps to reproduce the problem:
$> skm c my-key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): _
<CTRL+C to interrupt process>
$>
$> skm c my-key
Create SSH key failed!
$>
I would expect to be able to create the key again afterward.
When connecting to a ssh server, by default, all available public keys are sent for it to choose one for authentication.
This is a problem because any server you connect to now has a list of all your public keys.
While this is not really a security issue for authentication, it allows servers to identify you if they have, for example, your github ssh key, or check other servers if they accept your public key (see, for example, https://github.com/benjojo/ssh-key-confirmer).
OpenSSH 8.9 implemented detstination constraints, this allows ssh-agent
to forwards public keys based on the destination server. The destination constraints can be added via the -h
flag to ssh-add
.
It would be cool for skm to either support adding destination constraints for keys, or to add keys with destination constraints to .ssh/config
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.