配置 SSH 密钥登录
配置 SSH 密钥登录
Sun使用 SSH 密钥登录比密码登录更安全、更便捷。配置 SSH 密钥登录主要分为两个步骤:
- 生成密钥对
- 将公钥上传到服务器
生成密钥对
首先需要在自己的电脑上生成密钥对,密钥对由一个私钥和一个公钥组成:
- 私钥 (
id_ed25519
): 必须严格保密,留存在你的本地电脑上,相当于你的“身份证明”。 - 公钥 (
id_ed25519.pub
): 可以安全地分享,需要被放置在你想登录的服务器上,相当于一把“锁”。
打开终端,使用 ssh-keygen 命令来生成密钥
1 | ssh-keygen -t ed25519 -C "[email protected]" |
-t ed25519
: 使用 Ed25519 算法。如果你的系统很老不支持,可以换成rsa -b 4096
。-C "[email protected]"
: 添加一段注释,通常用邮箱来标识这个密钥是谁的、用在哪台电脑上,方便管理。
运行命令后,根据系统提示进行操作:
- Enter file in which to save the key (…): 保存密钥的位置,直接回车即可,会使用默认路径(通常是 ~/.ssh/id_ed25519)。
- Enter passphrase (empty for no passphrase): 提示为私钥设置一个密码,不设置登录会更方便,设置了登录需要再输入密码
- Enter same passphrase again: 再次输入你设置的密码进行确认。
完成后,会在 ~/.ssh
目录下看到两个新文件:id_ed25519
(私钥) 和
id_ed25519.pub
(公钥)。
将公钥复制到服务器
要实现免密登录,需要把刚刚生成的公钥
(id_ed25519.pub
) 的内容,添加到服务器上登录用户的
~/.ssh/authorized_keys
文件中,有两种方法:
方法 1:使用
ssh-copy-id
命令
这个命令会自动完成所有操作,包括在服务器上创建目录、设置文件和修正权限,能有效避免手动操作的失误。
注意:Windows 需要打开 Git bash 执行这个命令,亲测 PowerShell 和 CMD 都不支持这个命令
1 | ssh-copy-id -p 端口号 username@server_ip |
如果你的密钥不在默认路径,可以使用 -i
参数指定路径
1 | ssh-copy-id -i ~/.ssh/other_key.pub username@server_ip |
系统会提示输入服务器密码,输入密码后会自动将公钥内容追加到服务器上的
~/.ssh/authorized_keys
文件中
方法 2:手动复制粘贴
ssh 连接上服务器,执行以下命令
1 | # 确保 .ssh 目录存在 |
然后将本地电脑 ~/.ssh/id_ed25519.pub
文件中的内容完整复制到服务器上的~/.ssh/authorized_keys
文件中
测试
退出服务器,然后再次尝试登录
1 | ssh username@server_ip |
如果一切顺利,系统会直接让你登录,而不会再询问密码
评论
匿名评论隐私政策