测试基础 我是这样玩转 Linux《一》

花菜 · 2023年05月11日 · 最后由 啊木森 回复于 2023年05月15日 · 6657 次阅读

1、免密登录

平时用 ssh 登录远程服务器时,大概会是这样:ssh root@123.123.45.168

并且还要输入密码,如果密码比较长,并且有各种特殊字符,简直是折磨

有了免密登录,再也不用输入那么一长串的命令

下面的例子就是登录我腾讯服务器,超级简单,只需要输入ssh tx就行了,不需要输入密码!

ssh-tx.gif

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

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 公钥添加到远程服务器

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

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

公众号原文

共收到 8 条回复 时间 点赞

如果你有更多 Linux 玩机技巧,欢迎留言讨论

mobaxterm 一直用,有密码记录功能,你这还得设置😂

迷龙 回复

嗯嗯,很多工具都有记录密码功能,不过我几乎不用密码登录

咳咳,被害同学在这里

你这个有啥意义啊,大公司权限都那么严格,还能修改 linux?

杀手carry 回复

如果你觉得没有意义,直接关闭即可

大佬 我也想进测试技术交流群学习交流😽

我管理过企业一百多台服务器,安装完系统,第一件事,新建一个用户,赋予最高用户权限,屏蔽 root 等系统账号;每一个服务器,都单独的用户名和密码;

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册