1. windows怎么安装
https://github.com/PowerShell/Win32-OpenSSH/releases
安装完后,输入命令有反应表示 正常

2. 如何生成密钥
Ed25519是椭圆曲线算法
go
ssh-keygen -t ed25519 -C "homepc" -N '""'
-t:指定加密算法
-C 是加个备注
-N '""'口令(passphrase)设为空会在
C:\Users\zyx.ssh目录下生成私钥和公钥

3. 如何公钥放进 root 的「免密登录白名单」
3.1 第 1 行:建目录并收紧权限
bash
text
mkdir -p /root/.ssh && chmod 700 /root/.sshmkdir -p /root/.ssh:创建 root 的 SSH 配置目录。-p表示「已存在也不报错,父目录缺了自动补」,所以重复执行是安全的chmod 700:权限改成「只有所有者可读写进入」,组和其他人一律无权限(7=读写执行,00=无)&&:前一步成功才执行后一步
为什么要 700:sshd 有个安全校验,如果 .ssh 目录或公钥文件对「组/其他人」可写,它会直接拒绝用公钥登录(报 Bad ownership or permissions),所以权限必须收紧。
3.2 第 2 行:追加公钥
bash
text
echo 'ssh-ed25519 AAAAC3…wfoN 1post-server' >> /root/.ssh/authorized_keys这一行分三部分看:
yaml
ssh-ed25519:密钥算法类型
AAAAC3NzaC1lZDI1NTE5…wfoN: 公钥本体(base64),公钥可以随便公开,泄露它没有风险
1post-server: 只是备注名,方便你自己辨认是谁的 key,不参与认证authorized_keys 就是「允许登录本机的公钥清单」,每行一把。放进去等于告诉 sshd:持有这把公钥对应私钥的人,可以免密登录 root。
这里特意用
>>而不是>:>会把整个文件清空重写,如果你服务器上已经有别的公钥,就会被一并抹掉。
3.3 第 3 行:收紧公钥文件权限
bash
text
chmod 600 /root/.ssh/authorized_keys600 = 只有 root 能读写,其他人不可见。同样是满足 sshd 的权限校验;顺便也修掉「之前可能已存在但权限不对」的情况。
3.4 安全边界(重要)
- 私钥
id_ed25519_1post在你本机C:\Users\zhangyuxin\.ssh\下,永远不要外发;命令里出现的只是公钥,可以放心贴 - 加了这把 key 之后,持有该私钥的机器(也就是你现在这台电脑)可以免密 root 登录这台服务器。如果你不想长期保留,随时删除
authorized_keys里那一行即可撤销 - 你原来的密码登录不受影响,依然可以照常用
彻底关掉闺蜜
4. ssh连接调试
4.1 查找连接问题,可以加-v
go
ssh username@ip -v4.2 查看服务器日志,可以查看
go
/var/log/secure
4.3 使用调试模式
go
/usr/sbin/sshd -p 10022 -d
-d 以调试模式运行。服务器将在前台运行并发送非常详细的调试日志信息,服务器将只允许接入一个连接,并且不派生出子进程。仅用于调试目的。
-p 10022 指定端口5. vscode怎么密钥连ssh
打开remote view
选设置

Open config
Add identifile

ok
6. cloudflared加速ssh
6.1 方法1
配置tcp tunnel
https://blog.csdn.net/sbc1232123321/article/details/140072400
windows连接
bash
cloudflared.exe access ssh --hostname ssh.xxxxxx.com -url localhost:222ssh连接
bash
ssh -p 222 password@localhost6.2 方法 2
配置ssh tunnel(有点慢)
在本地的.ssh/config中配置
bash
Host ssh2.*****.com
ProxyCommand cloudflared access ssh --hostname %hssh直接连接
bash
ssh username@ssh2.xxx.com