常见的ssh连接服务器有两种,一是通过用户名和密码登录,这也是我们最常用的,而另一种是通过密钥来登录,这种不仅可以省去密码,而且更加安全可靠。
服务器端生成密钥
首先连接服务器,输入ssh-keygen
建立密钥, 会跳出以下内容:(中文备注的地方需要输入处理)
1 | ➜ ~ ssh-keygen |
这样密钥就生成好了,其中id_rsa
是密钥,也是我们本地需要的钥匙,id_rsa.pub
是公钥,服务器自己持有
服务器配置密钥
在~/.ssh
文件夹下面可以找到刚才生成的钥匙(我这里是root用户,所以上面显示的是/root
)
首先需要把id_rsa.pub
这个公钥内容复制到authorized_keys
1 | cat id_rsa.pub >> authorized_keys |
然后需要修改文件的读写权限,保证只有此用户有写权限,一般就设置为以下的权限:
1 | chmod 600 authorized_keys |
到这里如果之前没有对服务器ssh进行修改的话,服务器端配置就完成了
客户端配置密钥
其实客户端这里没什么配置的,只要把私钥复制到本地就可以
通过scp
命令复制id_rsa文件到本地用户的.ssh
文件夹下:
1 | scp root@xxxx:~/.ssh/id_rsa ~/.ssh/id_rsa |
之后就可以通过密钥登录了,命令如下:
1 | ssh root@xxx -i ~/.ssh/id_rsa |