善用 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
默认来配置
- 上传
id-rsa.pub
到/root/.ssh/
目录, 目录不存在则自行创建mkdir /root/.ssh
- 上传后,将
id-rsa.pub
命名为authorized_keys
,这个是配置的默认名称 - 更改文件
authorized_keys
为 600 权限,防止其他用户写入
mkdir /root/.ssh
mv id-rsa.pub authorized_keys
chmod 600 authorized_keys
- 修改
/etc/ssh/sshd_config
配置,开启密钥登录,找到下面配置,去掉注释
RSAAuthentication yes
PubkeyAuthentication yes
- 最后重启
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::
来自俄罗斯的你好!
Hiii(;
Hiii(;
Hiii(;
Hiii(;
what do I am ( ๑´•ω•) "(ㆆᴗㆆ)doing