使用密钥登录ssh(极简版)

说来非常灵车,我的众多vps一直使用的是强密码登录的方式,但是看着fail2ban里面几十万条的爆破纪录总是感觉不太安心,所以今天决心要折腾一下使用密钥登录ssh

原理

密钥分为公钥和私钥两部分,公钥储存在服务器上,就像锁一样保护着ssh的登录权限,私钥就是钥匙,在用户手上掌握,用户通过私钥和公钥匹配的方式来通过认证连接ssh

开始操作

1. 生成SSH密钥对

在你的本地机器上执行以下命令:

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

参数说明:

  • -t rsa: 指定密钥类型为RSA。
  • -b 4096: 指定密钥长度为4096位。
  • -C "your_email@example.com": 添加注释(通常是你的email)。

你会看到以下提示:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/your_username/.ssh/id_rsa):

按回车键使用默认路径(或者你可以指定一个自定义路径)。

接下来,系统会提示你输入一个密码短语。这个密码短语用于保护你的私钥:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

2. 将公钥复制到服务器

你可以使用ssh-copy-id命令将公钥复制到服务器:

ssh-copy-id username@server_ip

系统会提示你输入服务器用户名的密码。一旦验证成功,公钥会被自动添加到服务器的~/.ssh/authorized_keys文件中。

如果你的本地机器上没有ssh-copy-id命令,你可以手动复制公钥。首先,使用以下命令显示公钥内容:

cat ~/.ssh/id_rsa.pub

然后,在服务器上执行以下命令(假设你已经使用密码登录到服务器):

mkdir -p ~/.ssh
echo "你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

3. 配置SSH服务器以禁用密码登录(可选)

为了进一步提高安全性,你可以配置SSH服务器以禁用密码登录。在服务器上编辑/etc/ssh/sshd_config文件:

sudo nano /etc/ssh/sshd_config

找到以下行并修改:

PasswordAuthentication no

保存并退出编辑器,然后重启SSH服务:

sudo systemctl restart ssh

4. 测试登录

现在,你可以从本地机器使用密钥登录到服务器:

ssh username@server_ip

如果一切设置正确,你应该能够使用密钥登录到服务器,而不需要输入密码。

5. (可选)配置SSH代理

如果你不想每次都输入密码短语,可以使用ssh-agent来管理你的SSH密钥:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

瞎聊

接下来可能会写如何将密钥配置进yubikey之中,也有可能不会,毕竟目前没什么需求

最近一直在折腾unity相关内容和vr,所以我们的vrchat从零开始系列可能又要恢复更新了

openssh被发现有重要安全漏洞,记得及时执行apt update && apt upgrade 升级版本保护机子安全

博客内容均系原创,未经允许严禁转载!
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇