目录

SSH 免密登录配置指南

SSH(Secure Shell)是 Linux 下最常用的远程连接协议。默认方式需要每次输入密码,通过配置密钥认证可以实现免密登录,提升效率和安全性。

生成密钥对

直接运行 ssh-keygen -t rsa

/img/1483281597856.webp

这样会在用户的 .ssh 文件夹中生成密钥文件:

/img/1483281609815.webp

  • id_rsa:私钥,保留在本地,不可泄露
  • id_rsa.pub:公钥,需要复制到远程服务器

复制公钥到远程服务器

只需要将其中的 id_rsa.pub 文件复制到目标机器就可以实现无密码访问目的机器了

/img/1483281622401.webp

使用 scp 命令,中途会提示输入目的机器的密码,直接输入即可,下图是直接将文件复制到 root 用户的目录中的

导入公钥到 authorized_keys

之后还需要将其导入到 .ssh/authorized_keys

/img/1483281654579.webp

使用 ssh 登录目的机器

/img/1483281681025.webp

此时并没有将公钥导入到 authorized_keys 中所以仍然需要密码,输入密码后继续 将公钥导入到 authorized_keys 中

/img/1483281692561.webp

之后再切回本地的机器,再次运行 ssh

/img/1483281701738.webp

此时已经可以实现免密码登陆了。前提是本地用户名和远程的用户名相同,才可以使用 ssh remote_host 直接登录。

验证登录

配置完成后,直接 SSH 连接远程服务器,如果不再提示输入密码则说明配置成功:

ssh user@remote_host

进阶:SSH Config 简化连接

当管理多台服务器时,可以在 ~/.ssh/config 中配置别名:

Host myserver
    HostName 192.168.1.100
    User root
    IdentityFile ~/.ssh/id_rsa

之后只需 ssh myserver 即可连接,无需记住 IP 和用户名。