不用密码连接到Linux服务器(使用密钥登陆Linux服务器 ssh)

为什么要不用密码登陆服务器

对于自己常用的服务器来说,每次登陆服务器都需要输入密码确实很费劲,所以如何可以不使用密码登陆Linux服务器呢?不使用密码当然会使用其他东西了,例如:公钥私钥,所以问题就变成了如何使用公钥登陆Linux服务器,根据原理我们可以知道,首先我们需要生成一对公钥和私钥,之后将公钥写入服务器,登陆时携带私钥即可登陆。

生成密钥对

mac下生成密钥对

如果是在mac下,可以直接在终端输入:

ssh-keygen -t rsa

然后直接回车就可以了。

windows下生成密钥对

如果是windows,那么如果说有安装vs code的话,可以在vs code中打开终端,然后输入:

ssh-keygen -t rsa

之后回车即可,如果没有安装vs code的话,需要看下有没有安装git,如果安装了,可以在桌面右键打开git bash,然后输入以上命令。

生成的密钥对在当前用户的.ssh文件夹下,mac用户下在终端输入:

cd
cd .ssh
ls

即可看到,我在终端输入这三条命令后,显示:
config id_rsa id_rsa.pub known_hosts

ps. windows用户也是在用户名.ssh的文件夹下

上传公钥并使用

那么id_resa.pub就是公钥了,我们把它传到服务器当中去,使用scp命令上传,然后把公钥写入到服务器的认证文件authorized_keysz 中去:

scp id_rsa.pub ip:/root/
ssh root@ip
// 输入密码
cat id_rsa.pub >> .ssh/authorized_keysz
quit;
// 完成
// 再次输入
ssh root@ip
// 即可直接进入,无需输入密码

特别的方便。