第一步:在本地电脑生成密钥对
首先,在你的本地 Linux 终端中执行以下命令来创建密钥对:
bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-
-t rsa -b 4096:指定使用长度4096位的RSA算法,安全性高。 -
-C:添加一个注释(通常用邮箱),方便识别。
执行后按提示操作:
-
保存路径 :直接按
Enter,使用默认的~/.ssh/id_rsa即可。 -
设置密码 :系统会提示
Enter passphrase。强烈建议设置一个密码,这相当于给私钥再加一把锁,即使私钥文件不小心泄露,没有密码也无法使用。
完成后,会在 ~/.ssh/ 目录下生成两个文件:
-
id_rsa:私钥,相当于你的"钥匙",必须严格保密,绝不能外传。 -
id_rsa.pub:公钥,相当于你要安装在服务器上的"锁",可以公开。
第二步:把公钥"安装"到远程服务器
这一步是将你生成的公钥内容添加到远程服务器的信任列表中。这里有两种方法:
方法一:使用 ssh-copy-id 命令(最推荐)
这个命令会自动将公钥添加到服务器的指定位置,最简单也最安全。在本地终端执行:
bash
ssh-copy-id user@your_server_ip
-
user:你在远程服务器上的登录用户名。 -
your_server_ip:远程服务器的IP地址。
执行后,系统会提示你输入一次该用户的登录密码。输入正确后,公钥就上传成功了。
方法二:手动复制(如果 ssh-copy-id 不可用)
-
先查看并复制你的公钥内容:
bash
cat ~/.ssh/id_rsa.pub选中并复制终端输出的那一长串字符(从
ssh-rsa开始到末尾)。 -
然后登录到远程服务器,将公钥粘贴到指定文件中:
bash
# 1. 用密码登录远程服务器 ssh user@your_server_ip # 2. 在服务器上执行以下命令 mkdir -p ~/.ssh # 创建 .ssh 目录(如果不存在) chmod 700 ~/.ssh # 设置 .ssh 目录权限为700[citation:3][citation:4] echo "这里粘贴你的公钥内容" >> ~/.ssh/authorized_keys # 将公钥追加到信任列表 chmod 600 ~/.ssh/authorized_keys # 设置 authorized_keys 文件权限为600[citation:3][citation:4]




如果生成秘钥时输入了密码,那么就使用自定义的密码登录,如果没有输入密码直接登录。