抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

一、生成 SSH 密钥

1. 生成密钥

your_email@example.com 替换为你的邮箱

1
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

2. 设置密钥位置

默认会提示下方内容,回车会生成到默认目录,强烈建议自定义名称,避免后续生成给覆盖掉

建议改成例如 /Users/YOU/.ssh/id_rsa_{任意服务器标识}_your_email 位置

1
> Enter a file in which to save the key (/Users/YOU/.ssh/id_rsa): [Press enter]

3. 设置密钥密码

根据安全程度自行选择是否设置密钥密码,若不设置可直接按两下回车

4. 确认密钥

执行命令查看密钥文件,应该能看到你的密钥文件和公钥

1
2
3
ls ~/.ssh
- id_rsa_debian_your_email
- id_rsa_debian_your_email.pub

5. 设置密钥配置

编辑该文件

1
nano ~/.ssh/config

修改 Host 为你连接的主机host、ip等等,并设置 IdentityFile 指向你的密钥文件

1
2
3
4
5
6
7
8
9

Host debian 192.168.5.20 # 用于匹配如 ssh root@debian / ssh root@192.168.5.20
HostName 192.168.5.20 # ip
User root
IdentityFile ~/.ssh/id_rsa_debian_your_email

# 可选项,默认可以不设置这两项
RemoteCommand export TERM=xterm-256color && zsh # 是否执行连接后命令,例如连接后要执行某些脚本
RequestTTY auto # 是否申请tty,才能vim或输入密码等等交互,默认不需要管

二、添加 SSH 密钥到服务器

1. 复制公钥

输入命令查看公钥内容并复制

1
2
3
cat ~/.ssh/id_rsa_debian_your_email.pub

ssh-rsa AA************Jif your_email@example.com

2. 登录目标服务器

1
2
# 编辑该文件,把公钥粘贴到末尾
nano ~/.ssh/authorized_keys

3. 验证是否配置成功

输入命令,若不需要输入服务器密码,则说明成功(注意,若你密钥设置了密码,则需要输入密钥密码)

1
2
3
ssh root@debian
# 或
ssh root@192.168.5.20

三、添加密钥到 ssh-agent

若你的密钥设置了密码,每次都要输入密码,可添加到 ssh-agent 缓存起来,不需要频繁输入

1
2
3
4
5
# 后台启动 ssh-agent
eval "$(ssh-agent -s)"

# 添加密钥到 ssh-agent
ssh-add ~/.ssh/id_rsa_debian_your_email

四、常见问题

1. authorized_keys 文件权限

若配置了,但还是需要输入密码,可排查一下是否服务器的权限有问题

1
2
3
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R $USER:$USER ~/.ssh

评论