这一篇文章讲的很清楚:设置 SSH 通过密钥登录。下面按我的理解来记叙一下。
配置分两步:
- 生成私钥和公钥。之后将公钥放在要登录的服务器的~/.ssh目录下(如该目录不存在,则新建一个),并命名为authorized_keys(如该文件已经存在,则把公钥的内容放在原authorized_keys内容的末尾)。
如何生成私钥和公钥?使用Linux的ssh-keygen命令即可。你可以在要登录的Linux服务器上,或者在你的Linux系统或Mac系统的电脑上,运行ssh-keygen即可。以你要登录的Linux服务器上为例。输入该命令,首先会询问生成私钥和公钥的存放地址,如果按下回车,则默认的位置是~/.ssh下,之后会询问是否要为密钥设置额外的密码,按下回车则代表不设密码,之后确认设置的密码,就ok了。
2. 将私钥放在本机上,使用ssh登录即可。以下分Linux和Windows两类说明本机如何登录:
- 对于Linux系统或Mac系统,可以使用命令行登录,命令为:
ssh -p <端口号> -i <私钥路径> 用户名@主机名
如果把私钥放在本机的~/.ssh下(对于Linux系统是这样,Mac系统不清楚是不是这样的路径),则可以省去-i的参数,即:
ssh -p <端口号> 用户名@主机名
- 对于Windows系统,可以使用系统自带的Powershell工具使用上述命令登录,但个人感觉不好用。常用的是像Xshell这样的工具。以Xshell为例讲解ssh登录的配置。首先打开新建会话属性窗口,设置好协议、主机、端口号后,在用户身份验证处,选择Public Key方法,之后选择好私钥,输入密码(如果生成密钥时设置了额外的密码),按确定即完成了配置。如图: