Linux SSH 使用公钥登录

Linux SSH 使用公钥登录

技术 1370 字 / 3 分钟
AI 总结 以下AI总结内容由腾讯混元大模型生成

本文主要介绍了如何使用 SSH 公钥登录 Linux 服务器的过程,包括生成密钥、上传公钥到服务器、修改 SSH 配置以及关闭服务器的密码登录等步骤。通过这种方式,可以提高服务器的安全性,避免因弱密码而导致的潜在风险。

  1. 服务器选择与配置:作者选择了腾讯云的服务器,并开启了 Uptimerobot 检测,同时将原本在搬瓦工 VPS 上的重要网站迁移到阿里云上。

  2. 学习 SSH 公钥登录:作者在群里看到了王小军老师发布的 SSH 使用公钥免密码登录的教程,决定尝试在腾讯云服务器上设置公钥登录。

  3. 生成密钥对:在本地生成 SSH 密钥对,并将公钥保存在服务器上的 ~/.ssh/authorized_keys 文件中。

  4. 上传公钥并修改配置:将公钥上传到服务器,并修改 SSH 配置文件以允许公钥登录。

  5. 本地配置私钥:在本地配置私钥,使其可以通过别名登录服务器。

  6. 关闭服务器密码登录:关闭服务器上的密码登录,确保只有密钥登录才能访问服务器。

总结: 本文详细介绍了如何在 Linux 服务器上设置 SSH 公钥登录,以提高服务器的安全性。通过生成密钥、上传公钥、修改配置等步骤,可以实现在不使用密码的情况下登录服务器,从而保护服务器免受潜在的安全威胁。

服务器,永不嫌多

今天偶然间点开了腾讯云的广告,看了下他们家的服务器。配置的话,硬盘是比阿里云多出 10G,价格的话是 120RMB 一年。还是挺划算的,便入了一台。但是由于前阵子腾讯云误删客户数据爆出超卖服务器的事情,我只敢把原来在搬瓦工 VPS 上的一些不怎么重要网站逐步迁移过来,而像博客这种站还是放在阿里云上。搬瓦工那边就只当做梯子来用。 目前手里有的三台服务器我都开了 Uptimerobot 检测,很舒服。

想要更安全

我给腾讯云这台服务器的定位是给拿来练手的,因为没什么重要文件,玩坏了就重装。 之前部长给了我助手服务器的私钥,但是我并不知道怎样在 Mac 上的终端里使用。正好这次在群里看到王小军老师发了 SSH 使用公钥免密码登录的教程。我便想着尝试给服务器配上公钥登录。这样应该会安全不少。

生成密钥

首先先是生成密钥:

ssh-keygen -t rsa

会提示输入密钥的名字,以及密码。注意:如果填写了密码,那么在使用密钥登录服务器时会要求输入密码。 还是要输入一个密码,就很繁琐。因此在提示输入密码时,直接两下回车,不要密码。 之后在当前目录下会有生成的公钥和私钥。公钥是带.pub后缀的,私钥是不带的 然后我们需要把公钥上传到服务器,私钥放在本地。

上传公钥到服务器并修改配置

首先确保服务器上有~/.ssh/authorized_keys文件,没有的话请自行创建。(我腾讯云的服务器上是有的) 之后,可以在本地使用scp将文件上传到服务器。不是那个 SCP 基金会啦

scp全称 secure copy,用于在 Linux 下进行远程拷贝文件的命令。 命令格式:scp [参数] [原路径] [目标路径]

scp ~/.ssh/id_rsa.pub xxx@host:~/.ssh/authorized_keys

这样我们的密钥就会被复制进入服务器上的~/.ssh/authorized_keys文件中。

之后需要更改 SSH 的配置,打开配置文件:

sudo vim /etc/ssh/sshd_config

如果PubkeyAuthentication yes前有#的话就去掉#的注释,或者直接手动加上这一句。 这样就打开了公钥的登录。 之后重启 SSH 服务:

sudo service sshd restart
12月25日 更新 司大哥告诉我其实有更简单的 ssh-copy-id 命令,直接就可以把本地的密钥上传至服务器。 ssh-copy-id -i .ssh/id_rsa.pub root@123.45.67.89 真的是方便了不少!!Li4n0 牛逼!

本地配置私钥

下面需要将私钥配置到本地。我这边以 Mac 为例,踩了不少坑。 Mac 下默认是把私钥放在~/.ssh/authorized_keys下。(其实放哪都无所谓,反正之后在配置文件里都可以改) 之后就是加入别名,之后我们就可以直接使用别名登录了,十分方便简洁。

sudo vim ~/.ssh/config

若没有这个文件,新建即可。 输入以下内容:

Host        alias #自定义别名
    HostName     hostname  #替换为你的 SSH 服务器 IP 或 Domain
    Port              port #SSH 服务器端口,默认为 22
    User              user #SSH 服务器用户名
    IdentityFile   ~/.ssh/authorized_keys/id_rsa #第一个步骤生成的公钥文件对应的私钥文件

这里的IdentityFile就可以改成你的私钥地址啦~(再次强调私钥是那个没有后缀名的文件) 之后我们可以直接使用ssh 你设置的别名进行登录!! 超简便是不是!

关闭服务器的密码登录

确保你可以使用密钥登录上你的服务器之后,就可以关闭服务器上的密码登录了。这样就更加安全了。 打开 SSH 配置:

sudo vim /etc/ssh/sshd_config

之后加上 / 更改成:PasswordAuthentication no 一定要确保可以使用密钥!不然关闭了密码登录后就完蛋了,再也登不上去了!不要问我为什么知道 之后重启 SSH 服务:

sudo service sshd restart

完成啦!

这样就 OK 啦!尽情享受密钥登录带来的方便与安全吧!之后的计划是给阿里云的服务器也配上密钥登录。

不过今晚还要继续肝 C 语言大作业QAQ,立了个 flag 说明天下午上课交。

谢谢老板 Thanks♪(・ω・)ノ


喜欢这篇文章?为什么不打赏一下呢?