SSH 免密登陆 VPS

我们在进行 SSH 登陆的时候,每次都需要输入密码,就感到十分的不方便,这里可以利用 SSH Key(ssh公钥) 来验证登录,从而实现免密登陆。

通过命令生成 SSH Key

生成 SSH Key 我们需要 ssh-keygen 命令

1
2
3
4
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  

# Generating public/private rsa key pair...
# 三次回车即可生成 ssh key

查看生成的 SSH Key

1
2
cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

.ssh 文件夹中,可能有三个文件

  • id_rsa : 生成的私钥文件
  • id_rsa.pub : 生成的公钥文件
  • know_hosts : 已知的主机公钥清单

我们需要用的就在 id_rsa.pub 文件中。

如果希望ssh公钥生效需满足至少下面两个条件:
* .ssh 目录的权限必须是700
* .ssh/authorized_keys 文件权限必须是600

将 SSH Key 上传到服务器

方法一:手动复制

先登录服务器

1
ssh root@服务器IP地址 -p 端口

在 VPS 的默认目录(/root)下面新建文件夹 .ssh

1
mkdir ~/.ssh

进入 .ssh 目录,执行 vi 命令新建 authorized_keys 文件

1
2
cd ~/.ssh
vi authorized_keys

id_rsa.pub 文件中的内容粘贴到 authorized_keys 文件中,保存退出,之后就可以实现免密登陆。

方法二:执行 scp 命令快速建立 authorized_keys 文件

1
scp -P 端口 ~/.ssh/id_rsa.pub root@服务器IP地址:/root/.ssh/authorized_keys

注意:这里 -P 的 P 是大写。

输入密码后,authorized_keys 文件就新建成功,之后就可以免密登陆了。