前言
去年十二月中旬由胡同学推荐买了 CloudCone VPS 用来搭建一些 Docker 自托管项目,因为原本我部署 Uptime Kuma、AList 和 Memos 的平台 Zeabur 和 Replit 都相继在年底开启了收费。
初上手 VPS 就跑了个 1Panel 面板方便管理,但还是经常要使用 SSH 连接。当时根本没啥安全意识,就设了个密码连接,而且那个密码很简单。果不其然还没过几天就出事了,搭建的服务全部 502,SSH 也连不上,直接整个人愣在当场。打开 CC 后台看到 CPU 占用为 0,我觉得是被人黑了,所以重置了 SSH 密码然后还是连不上。心急如焚地试了各种办法,发现后台重启能获得短暂复活时间,但不一会又死掉。利用短暂时间把面板密码、SSH 密码又都改了,但服务器每次重启都还是会在很短的时间内再次断连。对方手速真是太快了,而且我想不明白黑客是怎么搞我的。最后迫不得已决定尝试终极办法——后台重装系统,还好 1Panel 有备份恢复功能,数据完好无损。这才总算是恢复了对服务器的控制权。
问了 ChatGPT,它告诉我:
直接在电脑的终端输入 SSH 密码连接服务器并不安全,因为密码可能会被记录在终端的历史记录中,或者被其他恶意软件截获。这样会导致密码泄露的风险。
为了更安全地连接服务器,建议使用 SSH 密钥对进行认证。生成一个 SSH 密钥对,将公钥添加到服务器上的 ~/.ssh/authorized_keys 文件中,然后使用私钥进行连接。这样即使私钥被泄露,也不会对服务器的安全造成影响,因为私钥是加密的,无法被他人轻易使用。
另外,还可以使用 SSH 代理来管理密钥,这样可以避免在每次连接时输入密码或者解锁密钥。使用这些方法可以大大提高连接服务器的安全性,避免密码泄露的隐患。
之前在网上看人家玩服务器很多用密钥的,不以为然,觉得没人会对我的服务器有兴趣吧,侥幸用方便点的密码。虽然不确定 ChatGPT 生成的这段话的真实性,但是密钥比密码安全是能确定的。密码让我吃了苦头,现在就来用密钥了。
找到一个免费开源的老牌 SSH 客户端,PuTTY。它常被用于 Windows 下连接管理远程服务器。现在我不太用到 SSH 了,基本都是 1Panel 里面操作各种东西,但为方便我以后查阅使用方法,配合截图记录一下 PuTTY 的基础用法及一些设置技巧。
开始前先说一下,如果有朋友想买 CC 的 VPS 可以走我的 AFF 啊哈哈
https://app.cloudcone.com/?ref=11248
PuTTY 下载
PuTTY 官方下载地址:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
在下载页提供有集成 PuTTY 及相关工具的完整安装包,也可以视需求单独下载某个程序使用:
文件名 | 概述 |
---|---|
putty.exe | SSH 和 Telnet 客户端(最常使用) |
pscp.exe | SCP 客户端,命令行下通过 SSH 远程拷贝文件 |
psftp.exe | SFTP 客户端,命令行下的文件传输会话 |
puttytel.exe | Telnet 客户端 |
plink.exe | PuTTY 后端的命令行工具 |
pageant.exe | PuTTY、PSCP、Plink 的 SSH 认证代理 |
puttygen.exe | RSA、DSA、ECDSA 和 EdDSA 密钥生成工具 |
创建 SSH 会话
运行 putty.exe,在程序界面内输入服务器 IP 地址和端口,选中 SSH 连接类型,设置连接会话名称,点击保存,然后点击 Open 按钮连接登录。
首次连接会提示服务器指纹,保存后登录同一台服务器将不再提示(如果提示,则表示服务器指纹发生了变化,可能是重装系统所致或连接服务器被冒充)。如果需要注销连接会话,使用 exit
命令或 Ctrl + D 快捷键。
PuTTY 配置
选中 SSH 会话,点击 Load
加载设置,然后开始修改设置,最后回到首页点击 Save
保存。
使用私钥登录
生成密钥
运行 puttygen.exe,点击 Generate
生成密钥对,然后在 Key passphrase
设置密码后点击 Save public key
和 Save private key
保存。公钥上传到服务器(CloudCone 后台可以上传),私钥自己妥善保存。
设置密钥
侧边栏依次打开 Connection -> SSH -> Auth -> Credentials,浏览选中私钥文件,保存设置后即可使用密钥方式登录。
注意要使用 PPK 格式因为 PuTTY 不支持 PEM
格式密钥。需要用 puttygen.exe 转换一下。点击 Load
导入私钥文件,然后点击 Save private key
另存为 PPK
格式。
会话保持
当与服务器长时间没数据传输,PuTTY 会自动断开连接。可以在侧边栏 Connection 选项卡设置 Seconds between keepalives
值开启会话保持功能。
窗口内容长度
当打开一个很长内容的文件,或者程序命令不断输出内容,PuTTY 会话窗口只显示最后 2000 行内容。如果需要调整,在侧边栏 Windows 选项卡里修改 Lines of scrollback
数值。