ssh
SSH 是制定于应用层基础上的安全网络协议,是加密的信息传输系统。
验证是否开启
使用 ssh-keygen 构建
配置 SSH
基本语法(文档地址)
管理工具
使用 ssh-keygen 对密钥进行管理
ssh-keygen [子命令,通常为小写] [选项配置,通常为大写]
-A
生成所有默认密钥类型的主机-a
保存私钥时,此选项指定KDF
使用的次数,默认是 16 轮,防暴力破解-B
显示指定私钥或公钥文件的气泡摘要-b
指定密钥的位数。对于RSA
密钥,常用的位数是 2048 或更高(如 4096)-C
为生成的密钥添加一个注释,通常用于标识密钥的用途或所有者-c
更新密钥的注释-D
下载PKCS#11
共享库提供的公密钥-E
制定指纹的哈希算法(默认是SHA256
)。支持算法有SHA256
、MD5
、PIPEMD160
-e
将OpenSSH
转化为其他的密钥格式,默认导出格式为RFC4716
-F
搜索制定的端口号在-f
指定私钥文件的名称和路径。如果不指定,默认会生成~/.ssh/id_rsa
(对于RSA
密钥)或相应的文件名-g
打印指纹资源记录时使用通用DNS
格式 命令-I
在对公钥进行签名时指定密钥标识-i
将外部的密钥转化为OpenSSH
,默认导入格式为RFC4716
-K
从FIDO
身份验证器下载常驻密钥。公钥和私钥 每个下载密钥的文件将写入当前目录。如果 附加了多个FIDO
身份验证器,密钥将从 第一个触摸的身份验证器-k
生成KRL
文件。在此模式下,将 在通过撤销每个密钥或证书的标志指定的位置生成KRL
文件 显示在命令行上。要吊销的密钥/证书可能是 由公钥文件指定或使用ssh-keygen-f
-L
打印一个或多个证书的内容-l
显示密钥的指纹信息-M
生成候选Diffie-Hellman
组交换 (DH-GEX
) 参数 最终由diffie-hellman-group-exchange-*
键使用 交换方法-m
允许控制私钥文件的存储格式,确保生成的密钥能被其他工具(如OpenSSL
、旧版SSH
客户端等)正确读取。若不指定,默认格式由ssh-keygen
版本决定-N
为私钥设置一个密码。每次使用私钥时都需要输入这个密码,以增加安全性-n
指定要包含在 证书。可以指定多个主体, 用逗号分隔。-O
指定键/值选项。这些特定于已请求执行的动作-P
旧密码的输入-p
请求更改私钥文件的密码,而不是创建一个新的私钥-Q
测试KRL
中的密钥是否已被吊销。如果还指定了-l
该选项,则 将打印KRL
-q
静默构建-R
从known_hosts
文件删除hostname
。此选项对于删除散列主机很有用-r
打印指定公密钥文件命名的SSHFP
指纹资源记录-s
使用指定的CA
密钥认证(签名)公钥-t
指定要生成的密钥类型。常用的类型包括rsa
(默认)、dsa
、ecdsa
和ed25519
-U
此选项表示CA
密钥驻留在-u
更新KRL
-V
在签署证书时指定有效间隔-v
显示信息的信息-w
指定创建FIDO
时将使用的库的路径authenticator-hosted keys
,覆盖使用USB HID
支持。-Y find-principals
查找与签名的公钥关联的主体, 使用授权中的标志提供 使用标志提供的签名者文件。-Y match-principals
查找与指定的授权签名者文件中的标志提供的主体名称匹配的主体 使用标志。如果一个或多个匹配 找到主体时,它们会在标准输出上返回-Y check-novalidate
检查使用keygen
结构。这不会验证签名是否来自授权的-Y sign
签名。测试签名时,接受标准输入上的消息和使用ssh-keygen -n
的签名命名空间。包含相应签名的文件ssh-keygen
还必须使用标志提供。 签名测试成功通过返回零退出状态来表示-Y sign
使用 SSH 密钥对文件或某些数据进行加密签名。签名时,接受零个或多个文件进行登录 命令行 - 如果未指定文件,则对标准上呈现的数据进行签名 输入。签名写入输入文件的路径,并使用 附加“.sig”,或者如果消息要 已从标准输入中读取-Y verify
请求验证使用上述方式生成的签名-y
从私钥生成新的公钥文件-Z
指定在编写 OpenSSH 格式时用于加密的密码 私钥文件。可用密码列表可以使用以下命令获得ssh -Q 密码
。默认值为aes256-ctr
-z
指定要嵌入到证书中的序列号以进行区分 来自同一 CA 的其他证书。如果 前缀为“+” 字符,则每个证书的序列号将递增 在单个命令行上签名。默认序列号为零
创建用法
使用 -t
构建新的 ssh
密钥
# 常规创建用法
ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa]
[-m OpenSSH | PEM] [-N 新密码] [-C 注释]
[-f 文件地址]
旧密码维护
使用 -p
对密码进更改
ssh-keygen -p [-P 旧密码] [-N 新密码]
[-m OpenSSH | PEM] [-f 文件地址]
倒入密钥
使用 -i
可以将外部格式的密钥文件(如 PEM
、PKCS#8
)转化为 OpenSSH
支持的私有密钥格式。它通常是解决不同系统之间的格式不兼容问题。
ssh-keygen -i [-m OpenSSH | PEM] [-f 文件地址]
到处密钥
与 -i
相反, -e
是将 OpenSSH
专用格式的私钥转换为其他格式(如 PEM
、PKCS#8
)
ssh-keygen -e [-m PKCS#8 | PEM] [-f 文件地址]
从私钥文件导出公钥
使用 -y
从私钥文件生成新的公钥文件
ssh-keygen -y [-f 文件路径]
修改注释
使用 -c
可以修改已有密钥的注释
ssh-keygen -c [-P 密钥(如果有的话)] [-C 新的注释] [-f 文件地址]
显示密钥的信息
使用 -l
显示密钥的指纹信息
ssh-keygen -l [-v] [-E fingerprint_hash] [-f 文件地址]
默认端口
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
开启服务
Start-Service sshd
关闭服务
Stop-Service sshd
远程连接
常规链接方法
ssh Administrator@119.45.35.232 -o 2222
如果在 ~/.ssh/
下配置了 config
相关内容,可直接
防止断连
在本地 sshd_config 文件(在 /etc/ssh/ 下):
# linux、mac 在 /etc/ssh 下
# window 在
ClientAliveInterval 60 // 闲置 60s 后自动连接
ClientAliveCountMax 5 // 尝试 5 次