使用私钥登陆云服务的好处有以下几点:
安全性更高:使用私钥登陆云服务可以避免密码被破解或泄露的风险。私钥是一个非常长的字符串,具有极高的随机性和唯一性,相对于密码更难以被破解。
方便性:使用私钥登陆云服务可以避免记住复杂的密码,只需要保存好私钥即可。私钥可以被加密存储在本地设备中,只需在需要登陆时解密即可完成登陆。
免于传输密码的风险:使用私钥登陆云服务时,私钥并不需要通过网络传输,而是直接存在于本地设备中。这样可以避免传输过程中被拦截或监听的风险。
下面开始讲解设置方法
生成SSH公钥和私钥
进入到家目录的./ssh文件生成密钥
cd ~/.ssh
ssh-keygen -t rsa
~/ 为当前用户的家目录
接下来一路回车
最后生成以下两个文件,id_rsa是私钥,id_rsa.pub是公钥
导入上面生成的公钥(id_rsa.pub)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
设置文件和文件夹的读写权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
配置sshd_config文件
vi /etc/ssh/sshd_config
在文件中修改以下两项并保存:
PubkeyAuthentication yes
#允许公钥身份验证
PasswordAuthentication no
#禁止密码身份验证
重启服务前将云服务器上id_rsa下载到本地
纯命令行的可以使用scp命令
scp root@ip:~/.ssh/id_rsa ~/download
这个命令其实不需要记,很好理解
scp 【远程文件路径】【 本地存放路径】
远程文件路径格式:user@ip:/path
比如:root@xxx.xxx.xxx.xxx:/root/file
本地路径格式:win系统是 c:\path 这种格式 linux系统 则是 /path
完整 : scp root@xxx.xxx.xxx.xxx:/path c:\ 或者 scp root@xxx.xxx.xxx.xxx:/path /path
将私钥成功下载到本地,这时候就能把云服务上的id_rsa和id_rsa.pub删除了
重启ssh服务
sudo systemctl restart sshd.service
退出终端重新登陆
此时用密码是无法登陆的,编辑换成公钥验证
使用ssh命令远程连接的话需要加-i 参数 , 指定用私钥进行身份验证
ssh -i /path/id_rsa root@xxx.xxx.xxx.xxx
或者ssh -i c:\path\id_rsa root@xxx.xxx.xxx.xxx