曾几何时,手上居然有好几台服务器,而以前因为有人强行爆破服务器端口(一个月被尝试2w多次登陆),就全部改成了 SSH 登陆,然后过去了很久,直到最近又需要,发现忘了,记录下。
执行以下命令生成密匙:
ssh-keygen -t ed25519 -C "your_email@example.com"
然后会提示需要确认位置,默认回车存放在 ~/.ssh 即可,然后提示输入密码,密码这个其实影响不大,默认回车即可,会生成两个文件,pub 后缀为公钥,另一个为私钥。
取公钥上传服务器,在公钥位置执行:
cat ./key_name.pub >> ~/.ssh/authorized_keys
实际上就是在服务器的 ~/.ssh/ 目录下新建一个 authorized_keys 文件,将公钥内容粘贴了进去。
然后直接 ssh 登陆即可:
ssh root@your_ip
但,一般我们的需求不止于此,因为我有很多服务器,那么都是一个名字冲突了怎么办?改名,直接改名,或者加上 -f 文件路径/文件名
,例如:
ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/rpi
然后会在用户 ~/.ssh 下看到两个文件 rpi 与 rpi.pub ,结束了吗,没有,这样直接用是没法连接成功的。
解决办法是指定对应的 host 匹配规则,新建 config 文件:
vim ~/.ssh/config
追加 host 与其对应的 ssh 私钥规则:
Host lckiss-rpi.com HostName lckiss-rpi.com PreferredAuthentications publickey IdentityFile ~/.ssh/rpi
然后再 ssh 连接即可。 而且此时可以直接通过 ssh lckiss-rpi.com
进行连接(通过 host 名称进行匹配)。
本站由以下主机服务商提供服务支持:
0条评论