想在腾讯云服务器上、一边部署业务、一边稳稳儿咬碎自己的数据包?先别急,咱们先把公钥这件“锁”买好。公钥犹如通行证,能够让你安全地远程登录服务器;没有它,那你可真就像只“互联网上的愤青”,敲键盘敲得手心冒汗,却找不到后门。
先聊聊公钥是干啥的。腾讯云服务器提供的“云主机”基础服务,默认启用了SSH协议,用来远程管理。SSH采用公钥/私钥机制:公钥由你自己提供,服务器存放;私钥保存在你本地,千万别泄露。每一次你通过SSH连接时,服务器向你发验证码,只有拥有对应私钥的人才能验证通过。也就是“凭证可视化”——让你看得见系数,传不见漏洞。
一、怎么在本地生成一对公私钥(CPU+内存、全套)?如果你是Windows用户,先装 Git for Windows,打开Git Bash,直接运行:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
这条命令会询问你存放路径,默认就行;然后让你设置密码,如果你想往常用无密码登录,直接回车也行。成功后,你会在你的主目录+/ssh 目录看到 id_rsa(私钥)与 id_rsa.pub(公钥)两文件。
二、将公钥推到腾讯云服务器。常用的是控制台复制粘贴:在腾讯云控制台,选择对应的云服务器,右侧选择“安全组”>“登录身份验证”>“添加”>“自定义”。粘贴 id_rsa.pub 文件内容,提交即可。或者用命令行手动:
ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@your-ec2-ip
步骤很直白,别担心,若出现“/etc/ssh/sshd_config”写死了公钥错误,修改后再 sudo systemctl restart sshd 重启。
三、怎么安全地使用私钥?先谈密码。若你选用无密码登录,强烈建议配置 ~/.ssh/config:
Host myhost
Hostname your-ec2-ip
User ubuntu
IdentityFile ~/.ssh/id_rsa
然后再改成 chmod 400 ~/.ssh/id_rsa,给它最敲打的权限,让不在乎的话重读文件的白帽子也束手无策。
四、怎么更改密钥对?想更换私钥?先删掉旧公钥:在服务器上 rm ~/.ssh/authorized_keys,按需复制新公钥。若需要撤回,可以直接手动删除用户目录下的 authorized_keys,装换人诞生。
五、对安全组的确认。有时候,你会发现你 SSH 里配置好了,连不进去?检查安全组端口 22 是否开放,不是开可以开放,放行 0.0.0.0/0,和任何网络,然后重启在作用。
六、别忘了禁用密码登录。只保留公钥:在 /etc/ssh/sshd_config 找 PasswordAuthentication 改成 no, PermitRootLogin 改成 no,然后重启 ssh:sudo systemctl restart sshd。这样,任何在你公钥上的人,哪怕你把账号交给敌人,也不可能直接密码入侵。
七、如何使用多份公钥?比如,你想同时让两台不同机器都能登陆同一台云主机,只需把各公钥追加到 authorized_keys 文件中,每行一份。 关键点: 通过 cat ~/.ssh/id_rsa.pub 把公钥拷贝,运行