抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

Linux 配置 SSH 免密登陆

曾几何时,手上居然有好几台服务器,而以前因为有人强行爆破服务器端口(一个月被尝试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条评论

发表评论