repository
0.0.0-20221009095420-d0e6ce96ca81
Repository: https://github.com/cnlubo/myssh.git
Documentation: pkg.go.dev
# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# README
myssh
使用 Go 编写的服务器SSH管理工具,主要将sshbatch、mmh、skm、manssh这几个工具的功能整合到一起以方便使用,部分代码拷贝自这几个工具。
安装
可直接从 release 页下载预编译的二进制文件,然后执行 myssh install 安装,卸载直接执行 myssh uninstall,卸载命令不会删除 ~/.myssh 配置目录。
基本命令
myssh -h
My ssh toolkit. Flags and arguments can be input to do what actually you wish.
Usage:
myssh [flags]
myssh [command]
Available Commands:
km manage ssh key (alias: mkm)
cfg manage myssh configfile (alias: mcfg)
clusters manage clusters (alias: mclusters)
alias managing your ssh alias config (alias: malias)
install install myssh
uninstall uninstall myssh
backup Backup all config,SSHKeys...
version Print versions about Myssh
Flags:
--no-color Disable color when outputting message.
--configPath string Path where store myssh profiles.
can also be set by the MYSSH_CONFIG_HOME environment variable. (default "/Users/ak47/.myssh")
--mkmPath string Path where myssh should store multi SSHKeys.
can also be set by the MKM_PATH environment variable. (default "/Users/ak47/.mkm")
--sshPath string Path to .ssh folder.
can also be set by the SSH_PATH environment variable. (default "/Users/ak47/.ssh")
-h, --help help for myssh
Use "myssh [command] --help" for more information about a command.
部分命令安装后自动软连接为快捷命令以便方便使用。
- myssh alias ==> malias
- myssh cfg ==> mcfg
- myssh km ==> mkm
- myssh clusters ==> mclusters
SSH Keys Manager
管理 多个 SSH Keys
Manage multiple SSH keys
Usage:
myssh km
myssh km [command]
Aliases:
km, mkm
Available Commands:
init Initialize SSH keys store
list List all available SSH keys (alias:ls)
add add one SSHKey
delete delete SSH key (alias:del)
use Set specific SSH key as default
display Display SSHKey (alias:dp)
rename Rename SSH key aliasName (alias:rn)
copy Copy SSH public key to a remote host (alias:cp)
Flags:
-h, --help help for km
Global Flags:
--configPath string Path where store myssh profiles.
can also be set by the MYSSH_CONFIG_HOME environment variable. (default "/Users/ak47/.myssh")
--mkmPath string Path where myssh should store multi SSHKeys.
can also be set by the MKM_PATH environment variable. (default "/Users/ak47/.mkm")
--no-color Disable color when outputting message.
--sshPath string Path to .ssh folder.
can also be set by the SSH_PATH environment variable. (default "/Users/ak47/.ssh")
Use "myssh km [command] --help" for more information about a command.
初始化 SSH Key Store
第一次运行时需要初始化 SSH Key Store
mkm init
所有的 SSH keys 都存储在 $HOME/.mkm目录中,如果$HOME/.ssh目录下存在 id_rsa & id_rsa.pub key pairs 将被移动到$HOME/.mkm/default.
创建 SSH key
当前支持 RSA 和 ED25519 两种类型的SSH key
管理配置文件
mcfg -h
manage myssh ConfigFile.
Usage:
myssh cfg
myssh cfg [command]
Aliases:
cfg, mcfg
Available Commands:
list List config (alias:ls)
add Add context config
delete delete config
set set current config
Flags:
-h, --help help for cfg
Global Flags:
--configPath string Path where store myssh profiles.
can also be set by the MYSSH_CONFIG_HOME environment variable. (default "/Users/ak47/.myssh")
--mkmPath string Path where myssh should store multi SSHKeys.
can also be set by the MKM_PATH environment variable. (default "/Users/ak47/.mkm")
--no-color Disable color when outputting message.
--sshPath string Path to .ssh folder.
can also be set by the SSH_PATH environment variable. (default "/Users/ak47/.ssh")
Use "myssh cfg [command] --help" for more information about a command.
配置文件
支持多配置文件切换功能,安装完成后将会自动在$HOME/.myssh下创建默认配置,默认配置文件结构如下:
tree ~/.myssh
/Users/ak47/.myssh
├── contexts
│ ├── ak47
│ │ ├── ak47.yaml
│ │ ├── include
│ │ └── sshconfig
│ └── default
│ ├── default.yaml
│ ├── include
│ │ └── k8s
│ └── sshconfig
└── main.yaml
main.yaml
主配置文件结构如下:
basic: default
contexts:
- name: ak47
sshconfig: /Users/ak47/.myssh/contexts/ak47/sshconfig
clusterCfg: /Users/ak47/.myssh/contexts/ak47/ak47.yaml
- name: default
sshconfig: /Users/ak47/.myssh/contexts/default/sshconfig
clusterCfg: /Users/ak47/.myssh/contexts/default/default.yaml
current: default
配置文件中可以配置多个context,由current字段指明当前使用哪个context.
sshconfig
默认内容如下:
Include include/*
当前使用的context的 sshconfig 会被软连接到 ~/.ssh/config文件。可以使用 malias 命令 管理此配置文件。
clusterCfg
默认内容如下:
default:
user: ak47
privateKey: /Users/ak47/.ssh/id_ed25519
port: 22
server_alive_interval: 30s
clusters: []
文件名一般与context名称相同,可以使用mclusters 命令来管理此配置文件.
管理 SSH alias config
malias -h
command line tool for managing your ssh alias config.
Usage:
myssh alias
myssh alias [command]
Aliases:
alias, malias
Available Commands:
list List ssh alias (alias:ls)
delete Delete ssh alias (alias:del)
add Add one ssh alias
update Update ssh alias
batch batch exec command (alias: bt)
go ssh login Server
keycopy Copy SSH public key to a alias Host (alias:kcp)
Flags:
-h, --help help for alias
Global Flags:
--configPath string Path where store myssh profiles.
can also be set by the MYSSH_CONFIG_HOME environment variable. (default "/Users/ak47/.myssh")
--mkmPath string Path where myssh should store multi SSHKeys.
can also be set by the MKM_PATH environment variable. (default "/Users/ak47/.mkm")
--no-color Disable color when outputting message.
--sshPath string Path to .ssh folder.
can also be set by the SSH_PATH environment variable. (default "/Users/ak47/.ssh")
Use "myssh alias [command] --help" for more information about a command.
创建 SSH alias
malias add
查询 SSH alias
支持模糊查询,例如:malias ls test
删除 one or more alias
malias del test test-1
✔ deleted successfully!!!
修改 SSH alias
malias update test3
拷贝 SSH public key to a alias Host
Copy SSH public key to alias Host
Usage:
myssh alias keycopy alias...
Aliases:
keycopy, kcp
Flags:
-h, --help help for keycopy
Global Flags:
--configPath string Path where store myssh profiles.
can also be set by the MYSSH_CONFIG_HOME environment variable. (default "/Users/ak47/.myssh")
--mkmPath string Path where myssh should store multi SSHKeys.
can also be set by the MKM_PATH environment variable. (default "/Users/ak47/.mkm")
--no-color Disable color when outputting message.
--sshPath string Path to .ssh folder.
can also be set by the SSH_PATH environment variable. (default "/Users/ak47/.ssh")
快捷登录服务器
malias go test1
批量执行命令
malias bt -h
Batch exec command for alias.
Usage:
myssh alias batch alias command ... [flags]
Aliases:
batch, bt
Flags:
-h, --help help for batch
-P, --prompt Prompt for password
Global Flags:
--configPath string Path where store myssh profiles.
can also be set by the MYSSH_CONFIG_HOME environment variable. (default "/Users/ak47/.myssh")
--mkmPath string Path where myssh should store multi SSHKeys.
can also be set by the MKM_PATH environment variable. (default "/Users/ak47/.mkm")
--no-color Disable color when outputting message.
--sshPath string Path to .ssh folder.
can also be set by the SSH_PATH environment variable. (default "/Users/ak47/.ssh")
manage clusters
整合了sshbatch的相关功能,具体使用方法参考sshbatch.
mclusters -h
manage clusters.
Usage:
myssh clusters
myssh clusters [command]
Aliases:
clusters, mclusters
Available Commands:
parse parse hostPattern to host list (alias:pa)
add Add one cluster
list List all cluster (alias:ls)
delete delete cluster (alias:del)
batch batch exec command (alias: bt)
keycopy Copy public key to cluster (alias: kcp)
Flags:
-h, --help help for clusters
Global Flags:
--configPath string Path where store myssh profiles.
can also be set by the MYSSH_CONFIG_HOME environment variable. (default "/Users/ak47/.myssh")
--mkmPath string Path where myssh should store multi SSHKeys.
can also be set by the MKM_PATH environment variable. (default "/Users/ak47/.mkm")
--no-color Disable color when outputting message.
--sshPath string Path to .ssh folder.
can also be set by the SSH_PATH environment variable. (default "/Users/ak47/.ssh")
Use "myssh clusters [command] --help" for more information about a command.
解析 Host pattern to machine host list
参考 sshbatch中的fornodes脚本的使用方法,支持集合操作.
mclusters ls
CLUSTERNAME HOSTPATTERN
---------------- --------------------------------
A foo[01-03].com bar.org
B bar.org baz[a-b,d,e-g].cn
foo02.com
C {A} * {B}
D {A} - {B}
管理 clusters
mclusters add
mclusters ls
mclusters del
批量执行命令
mclusters bt -h
Batch exec command for cluster.
Usage:
myssh clusters batch hostPatterns command ... [flags]
Aliases:
batch, bt
Flags:
-h, --help help for batch
-i, --identityfile string identity file (private key) for public key authentication.
-P, --password Prompt for password
-p, --port int Port for the remote SSH service (default 22)
-u, --user string User account for SSH login
Global Flags:
--configPath string Path where store myssh profiles.
can also be set by the MYSSH_CONFIG_HOME environment variable. (default "/Users/ak47/.myssh")
--mkmPath string Path where myssh should store multi SSHKeys.
can also be set by the MKM_PATH environment variable. (default "/Users/ak47/.mkm")
--no-color Disable color when outputting message.
--sshPath string Path to .ssh folder.
can also be set by the SSH_PATH environment variable. (default "/Users/ak47/.ssh")