进入本地电脑的 bash 终端
ssh-keygen -t rsa -P '' -C "your.address@gmail.com"
可选参数 -C
表示密钥的备注信息-t rsa
表示生成 rsa 密钥
可选参数-P
表示密码,-P ''
两个单引号就表示空密码,也可以不用 -P
参数,这样就要三次回车,用 -P
就一次回车
生成密钥后,你可以看到本地的 .ssh/
目录下有两个文件,一个私钥,一个公钥: id_rsa
和 id_rsa.pub
暂时利用 SSH 使用云主机的密码登录远程主机
暂时使用云主机的密码连接 SSH
ssh root@your.remote.host.ip
查看 home 目录 是否有 .ssh/ 文件夹
ls -a
如果没有就创建 .ssh/ 文件夹
mkdir .ssh
给 .ssh 文件夹赋予权限
chmod 755 .ssh
使用命令 `exit` 退出 SSH 连接后,利用 SCP 上传 本地 id_rsa.pub文件到服务器 home/.ssh 目录下,并重命名为 authorized_keys
scp id_rsa.pub root@your.remote.host.ip:~/.ssh/authorized_keys
再次使用密码连接云主机
ssh root@your.remote.host.ip
查看 .ssh 文件夹下是否有 刚才上传并重命名的 authorized_keys 文件
cd .ssh/
ls -a
给 authorized_keys 文件赋予权限
chmod 600 authorized_keys
重新启动云主机的 SSH 服务
systemctl restart sshd
如果使用 SCP 上传 id_rsa.pub 到云主机时没有重命名,而是直接上传到了.ssh/文件夹下,那么可以使用下面的命令将 .ssh 目录下的 id_rsa.pub 追加到 authorized_keys 文件中
cat id_rsa.pub >> authorized_keys
exit 退出 SSH连接
回到本地,测试免密码登录,如果提示是否保存密码则回复 yes,接下来不需要密码就可以直接登录远程主机了。
ssh root@your.remote.host.ip