macOS SSH快速连Linux服务器(公钥)

355 阅读3分钟

本机配置

  1. 打开终端,执行命令:ssh-keygen
  2. 生成本机秘钥对文件,包含 id_rsa 私钥、id_rsa.pub 公钥,默认保存在 ~/.ssh/ 目录下,执行open ~/.ssh/打开目录可以看到
  3. 在本机的 ~/.ssh/ 目录下新增config文件,文件名必须使用config,不然不识别,编辑config,内容格式如下
#别名快速登录linux服务器配置格式
Host ecs-test # 设置服务器别名
HostName 114.114.114.114 # 服务器ip
User root # 服务器用户名
# Port 22 # 服务器端口,如果服务器端SSH端口没有用默认的,需要在这里配置
IdentityFile ~/.ssh/id_rsa # 指定本机私钥

如果有多个配置,换行继续按这个格式编辑即可,比如:

#别名快速登录linux服务器配置格式
Host ecs-test # 设置服务器别名
HostName 114.114.114.114 # 服务器ip
User root # 服务器用户名
# Port 22 # 服务器端口,如果服务器端SSH端口没有用默认的,需要在这里配置
IdentityFile ~/.ssh/id_rsa # 指定本机私钥

#别名快速登录linux服务器配置格式
Host ecs-stage # 设置服务器别名
HostName 115.115.115.115 # 服务器ip
User root # 服务器用户名
# Port 22 # 服务器端口,如果服务器端SSH端口没有用默认的,需要在这里配置
IdentityFile ~/.ssh/id_rsa # 指定本机私钥

linux 服务器配置:

  1. 用root用户连接linux服务器,执行 vim ~/.ssh/authorized_keys。root用户访问 ~/ 目录默认就是 /root 目录,所以 vim ~/.ssh/authorized_keys实际是 vim /root/.ssh/authorized_keys
  2. i 进入编辑模式,enter键换行,在原有内容的前边,粘贴本机 id_rsa.pub 公钥文件中的所有内容;
  3. esc 键退出编辑模式,输入:wq 命令,按enter键保存并退出vim编辑;
  4. 如果是 centos7 及更高版本系统,执行 systemctl restart sshd 更新ssh配置;
  5. 如果是 centos6 系统,则执行 service ssh restart 更新ssh配置;

好了,两边都配置完成,在本机终端,输入ssh ecs-test(ssh + 配置的别名)快速连接 linux 服务器

ed25519密钥生成 (参考来源

以上是经典密钥生成,现推荐使用ed25519密钥,校验效率更高,执行命令举例:

# 用于 GitHub
ssh-keygen -t ed25519 -f my_github_ed25519  -C "email@163.com"
# 用于 Gitee
ssh-keygen -t ed25519 -f my_gitee_ed25519   -C "email@163.com"
# 用于 GitLab
ssh-keygen -t ed25519 -f my_gitlab_ed25519  -C "email@163.com"
# 用于企业
ssh-keygen -t ed25519 -f my_company_ed25519 -C "email@163.com"

ssh-keygen 的命令含义

举例:

ssh-keygen -t rsa -b 4096 -f my_id -C "email@example.com" 其中:

[-t rsa] 表示使用 RSA 算法。

[-b 4096] 表示 RSA 密钥长度 4096 bits (默认 2048 bits)。Ed25519 算法不需要指定。

[-f my_id] 表示在【当前工作目录】下生成一个私钥文件 my_id (同时也会生成一个公钥文件 my_id.pub)。

[-C "email@example.com"] 表示在公钥文件中添加注释,即为这个公钥“起个别名”(不是 id,可以更改)。

在敲下该命令后,会提示输入 passphrase,即为私钥添加一个“解锁口令”,解锁口令可以不设置,设置之后可以提高安全性,别人拿到你的私钥也不能直接使用。