Skip to content

ssh连接

10/17/2026

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/.ssh
  • mkdir -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_keys

600 = 只有 root 能读写,其他人不可见。同样是满足 sshd 的权限校验;顺便也修掉「之前可能已存在但权限不对」的情况。

3.4 安全边界(重要) ​

  • 私钥 id_ed25519_1post 在你本机 C:\Users\zhangyuxin\.ssh\ 下,永远不要外发;命令里出现的只是公钥,可以放心贴
  • 加了这把 key 之后,持有该私钥的机器(也就是你现在这台电脑)可以免密 root 登录这台服务器。如果你不想长期保留,随时删除 authorized_keys 里那一行即可撤销
  • 你原来的密码登录不受影响,依然可以照常用

彻底关掉闺蜜

4. ssh连接调试 ​

4.1 查找连接问题,可以加-v ​

go
ssh username@ip -v

4.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:222

ssh连接

bash
ssh -p 222 password@localhost

6.2 方法 2 ​

配置ssh tunnel(有点慢)

在本地的.ssh/config中配置

bash
Host ssh2.*****.com
ProxyCommand cloudflared access ssh --hostname %h

ssh直接连接

bash
ssh username@ssh2.xxx.com

7. ssh远程软件 ​

https://zhuanlan.zhihu.com/p/510914995