首先执行命令
ssh-keygen -t rsa
一路回车,该命令会在~/.ssh 目录下面创建两个文件 id_rsa 和 id_rsa.pub,这两者分别时私钥和公钥。公钥需要拷贝到需要登陆的机器上,如果ssh目录不存在,创建一个即可。
以本机为例,需要将公钥追加到~/.ssh/authorized_keys文件后,可以通过一下命令实现
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
接下来时最重要的步骤,很多教程到上面这一步就完成了,然而估计不少人还是会遇到不能面密码登陆的情况,问题处在权限的设置上。
首先需要保证 authorized_keys 的权限为600,即只有本账户可读可写。
然后是.ssh目录下面的 . 和 .. 两个文件夹的权限为 700,即本账户可读可写可执行。通过一下命令进行设定
cd ~/.ssh
chmod 600 authorized_keys
chmod 700 .
chmod 700 ..
最后还有一个权限问题,也比较容易忽略,就是该用户的home目录权限,例如用户名称为linux,则/home/linux目录的权限最高是755,否则也是不能正常通过ssh链接的
正确设置权限之后,应该就能正常ssh面密码登陆了。enjoy