Ryu

善用 SSH KEY 登录服务器
BANNER:「【アズールレーン】ユニコーン」/「秋月つかさ」/「pixiv」善用 SSH KEY 登录服务器前言...
扫描右侧二维码阅读全文
18
2018/07

善用 SSH KEY 登录服务器

BANNER:「【アズールレーン】ユニコーン」/「秋月つかさ」/「pixiv」

善用 SSH KEY 登录服务器

前言

使用 SSH KEY 登录服务器相比密码登录更加安全和便利。

除服务器登录,也经常在 github 或 gitlab 上配置使用。

生成私钥和公钥

确保系统中安装了 ssh-keygen 服务,主流的 linux 系统一般自带。

ssh-keygen -t rsa -b 2048 -C "youremail@yourcompany.com" -f ~/.ssh/id-rsa

-t 加密方式
-b 密码位数
-C 注释
-f 输出文件路径

生成过程中会让你是否再添加一个密码,如果有需要可以添加,否则一路按回车确认就可以了。

成功生成可以在 ~/.ssh/ 目录下找到 id-rsa 和 id-rsa.pub 私钥和公钥两个文件。

id-rsa 是私钥,在需要登录服务器时本地使用,需要客户端导入文件
id-rsa.pub 是公钥,需要配置到登录的服务器上面

服务器登录配置

这里根据 /etc/ssh/sshd_config 默认来配置

  1. 上传 id-rsa.pub/root/.ssh/ 目录, 目录不存在则自行创建 mkdir /root/.ssh
  2. 上传后,将 id-rsa.pub 命名为 authorized_keys,这个是配置的默认名称
  3. 更改文件 authorized_keys 为 600 权限,防止其他用户写入
mkdir /root/.ssh
mv id-rsa.pub authorized_keys
chmod 600 authorized_keys
  1. 修改 /etc/ssh/sshd_config 配置,开启密钥登录,找到下面配置,去掉注释
RSAAuthentication yes
PubkeyAuthentication yes
  1. 最后重启 sshd 服务

Git 客户端配置

配置多个密钥

~/.ssh/ 目录下创建一个 config 配置文件,配置说明如下:

# 一般配置参数说明,更多参数请自行搜索:
# Host SSH连接名
# HostName 如上所示,可以是通配符,可以是 IP,也可以是域名等
# User 登录的用户名
# Port 端口设置,默认 SSH 的端口是 22
# PreferredAuthentications 认证方式
# IdentityFile 密钥路径
# IdentitiesOnly 使用指定 identity 和 certificate 文件或通过 ssh 命令行通过身份验证
# 全部都写在一个文件上面即可

# github 例子:
Host github.com
HostName github.com
User Ryu
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_rsa
IdentitiesOnly yes

# gitee 例子:
Host gitee.com
HostName gitee.com
User Ryu
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_rsa
IdentitiesOnly yes

启用密钥

上面配置好之后,还需要将对应的密钥在系统中启用,这个需要每次系统得启都要执行一次,设置系统重启,自动执行会比较好些。

# 如果出现 Could not open a connection to your authentication agent.
eval "$(ssh-agent -s)" # 执行这个可以正常添加
ssh-add ~/.ssh/github_rsa # 添加密钥
ssh-add ~/.ssh/gitee_rsa
ssh-add -l # 查看当前已添加的密钥
ssh-add -D # 清空私钥列表

Last modification:July 20th, 2018 at 07:37 pm

Leave a Comment