首页 / 新闻动态 / 详情
Finalshell · 产品动态与运维实践

围绕 SSH 远程连接、服务器文件传输与主机批量管理的真实场景,持续输出可落地的方法与产品更新说明,帮助团队把每一次运维操作做得更稳、更快。

SSH远程管理工具密钥登录:六步关掉密码登录

密码登录被撞库,往往是运维里最没技术含量的失守。把日常远程登录从密码换成密钥,是 SSH远程管理工具中性价比最高的一次改造:前期花十几分钟,之后每次登录少输一次密码,也少一个可被爆破的入口。下面这套流程可以照着做,每一步都有可回退的余地。

第一步:动手前先给自己留一扇后门

改 SSH 配置最怕的不是配错,而是配错之后所有人都进不去。开始之前先做两件事:

  • 保持当前已登录的会话不要断开,这条连接就是你的应急通道;
  • 把 /etc/ssh/sshd_config 复制一份为 sshd_config.bak,需要回滚时直接覆盖并重新加载即可。

如果手上只有一台机器、一条连接,建议先确认云控制台是否提供 VNC 或网页终端登录,这是最后的保险。

第二步:在本地生成一对密钥

密钥在本地生成,私钥始终不离开你的电脑。打开终端执行:

  • ssh-keygen -t ed25519 -C "姓名-用途-年份",这是目前的推荐算法;
  • 老系统只认 RSA 时,用 -t rsa -b 4096 兜底;
  • 提示输入口令(passphrase)时建议设置,相当于给私钥再加一道门;
  • 生成后会得到两个文件:不带后缀的私钥和 .pub 结尾的公钥,前者绝不外发,后者才可以交给服务器。

第三步:把公钥送上服务器

常见的有两条路径,选一条即可:

  • 命令行方式:ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@服务器地址,它会自动创建目录、写入 authorized_keys 并设置权限,最省事;
  • 手工方式:登录后把公钥内容追加到 ~/.ssh/authorized_keys,然后执行 chmod 700 ~/.ssh 和 chmod 600 ~/.ssh/authorized_keys。

手工方式最常见的失败点就是权限:目录或文件权限过于宽松,sshd 会直接忽略密钥认证,表现为“明明配了却还要输密码”。遇到这种情况,先查权限再查配置。

第四步:在客户端里把密钥管起来

接下来让 SSH远程管理工具接管这把密钥。在连接配置里把认证方式切换为公钥认证,指定私钥文件路径,用户名单独填写,尽量不要依赖默认的 root。给连接起一个看得懂的名字,比如“业务名-环境-IP 段”,机器一多就知道这条连接通向哪里。

  • 多台服务器共用同一把密钥可行,但要能追溯到具体是谁;
  • 团队协作时坚持一人一把,不要共享同一个私钥文件;
  • 设了口令的私钥,首次使用会提示输入,建议记进密码管理器而不是便签。

第五步:确认免密能进,再关闭密码登录

顺序千万别颠倒。先新开一个终端窗口测试密钥登录,成功之后才去改服务端配置:

  • 确认 PubkeyAuthentication yes;
  • 把 PasswordAuthentication 改为 no;
  • 保存后先执行 sshd -t 检查语法,再用 systemctl reload sshd 或 reload ssh 重新加载。

先关密码再测密钥,是把自己锁在门外的经典操作。另外注意 reload 比 restart 温和,不会踢掉现有会话。

第六步:验证、登记与轮换

改完不是结束,还有收尾三件事:

  • 用一个全新窗口验证密钥能进、密码进不去,两条都要测;
  • 在交接文档里记下哪台机器、谁的密钥、什么时候加进去的;
  • 人员离职、笔记本丢失或私钥可能外泄时,从 authorized_keys 里删掉对应那一行就够了,不必改服务器密码,也不会影响其他人。

建议给密钥定一个轮换周期,比如半年一次,并按环境分开使用:生产一套、测试一套,互不牵连。把公钥下发、私钥保管、离场回收这三件事写进流程,SSH远程管理工具带来的便利才是可持续的。

继续了解 Finalshell

让每一台服务器都处在清晰的掌控之中

注册 Finalshell 账号,即可把会话配置、主机分组与常用命令同步到不同设备,随时随地延续熟悉的运维体验。