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 次