善用 SSH KEY 登录服务器

善用 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 # 清空私钥列表

::azurlane:oyasumi::

最后修改:2019 年 10 月 14 日 07 : 23 PM

8 条评论

  1. 俄语!??

    来自俄罗斯的你好!

  2. ロシア人??
    该评论仅登录用户及评论双方可见
  3. ロシア人??
    该评论仅登录用户及评论双方可见
  4. Lukeoro

    Hiii(;

  5. Lukeoro

    Hiii(;

  6. Lukeoro

    Hiii(;

  7. Lukeoro

    Hiii(;

  8. Kawaii Leeches

    what do I am ( ๑´•ω•) "(ㆆᴗㆆ)doing

发表评论