编辑
2023-05-11
linux
00
请注意,本文编写于 353 天前,最后修改于 353 天前,其中某些信息可能已经过时。

目录

1、免密登录
1.1 本地生成公司密钥对
1.2 公钥添加到远程服务器
1.3 服务器起别名
2、scp自动补全
3、防密码被暴力破解

1、免密登录

平时用ssh登录远程服务器时,大概会是这样:ssh root@123.123.45.168
并且还要输入密码,如果密码比较长,并且有各种特殊字符,简直是折磨
有了免密登录,再也不用输入那么一长串的命令
下面的例子就是登录我腾讯服务器,超级简单,只需要输入ssh tx就行了,不需要输入密码!
ssh-tx.gif

那怎么实现免密登录呢?很简单,流程如下:

sequenceDiagram
    participant C as 客户端
    participant S as 服务器

    C->>C: 生成公私钥对
    C->>S: 将公钥上传到服务器
    S->>S: 将公钥添加到authorized_keys文件

1.1 本地生成公司密钥对

ssh-keygen -t ed25519 -a 200 -C "lihuacai168@gmail.com" 跟着提示操作就好,直接一路默认就行,最后生成的密钥对会放在~/.ssh目录下

  • id_ed25519.pub是公钥,放到远程服务器上,可以给别人看到的
  • id_ed25519是私钥,留在本地,不能给别人看到的

命令解释:

ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" 是一个用于生成 ed25519 类型 SSH 密钥对的命令。逐个分析这个命令的各个部分:

  1. ssh-keygen:这是一个用于生成、管理和转换 SSH 密钥的工具。
  2. -t ed25519:-t 选项表示要生成的密钥类型,这里选择的是 ed25519。ed25519 是一种现代的、安全的、高效的椭圆曲线签名算法,广泛应用于 SSH 密钥。
  3. -a 200:-a 选项表示密钥派生函数(KDF)的轮数。这个值越大,密钥生成过程越慢,破解难度越高。在这里,轮数被设置为 200,提高了密钥的安全性。
  4. -C "your_email@example.com":-C 选项表示注释。这里,可以使用电子邮件地址作为注释,以便更容易地识别和管理密钥。当然,可以使用任何其他有意义的字符串来替换电子邮件地址。

1.2 公钥添加到远程服务器

这面是一个快捷命令,一行就能完成

shell
cat ~/.ssh/id_ed25519.pub | ssh 用户名@远程服务器地址 "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && cat >> ~/.ssh/authorized_keys"

如果有遇到报错,就把命令拆开执行:

  • ssh登录到远程服务器
  • 在当前用户的根目录创建一个.ssh的目录
  • 然后在.ssh目录下创建一个authorized_keys的文件
  • 接着把本地 ~/.ssh/id_ed25519.pub的内容复制到authorized_keys文件,保存退出即可
  • 修改authorized_keys文件的权限(可以省略这步)chmod 600 ~/.ssh/authorized_keys

配置完成后,在本地测试一下
ssh 用户名@远程服务器ip地址
正常的话,应该就能直接登录了

1.3 服务器起别名

如果要实现开头动图那样,不想每次都输入用户名和ip,本地还需要做多一个配置

  • 当前用户根目录创建一个.ssh目录,mkdir ~/.ssh
  • .ssh目录下创建一个文件config 内容可以参考这个
shell
IdentityFile ~/.ssh/id_ed25519 StrictHostKeyChecking no ControlMaster auto Host tx User root HostName 110.119.120.168

配置解释

  • IdentityFile ~/.ssh/id_ed25519 用来认证的私钥,不要带上.pub
  • Host tx 起一个服务器别名,叫做tx,随便起,方便记忆就行
  • User root 登录tx这个服务器使用的用户名
  • HostName 110.119.120.168 服务器的ip地址或者域名
  • 如果默认端口不是22,或者要为使用单独的私钥,都是支持的,具体请问ChatGPT

2、scp自动补全

配置完ssh服务器别名之后,scp自动补全就相当于额外赠送的了

  • 输入到tx:/ro按一下tab,如果只有一个选项,就自动补全
  • 输入到tx:/root/co因为有两个选项,就会展示所有的补全选项

scp-tx.gif

3、防密码被暴力破解

看到过很多人在连接远程服务器的时候,直接使用密码登录
这样会带来一些问题: 尤其是一些小白,刚买了服务器,没有什么安全意识。 就直接是裸奔,密码还是设置很简单的那种,什么root, 12345678, password, p@ssw0rd之类的。 简直就是送人头啊,这位同学就是曾经的受害人

image.png

刚买一周的服务器,就有遇到这么多次的破解
我设置了连续错误3次密码错误就拉黑

具体防范方法参考我博客这篇文章
https://blog.huacai.one/post/8

本文作者:花菜

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!