经常需要连接公司的一台服务器,每次都需要输密码,觉得麻烦。所以尝试了下ssh 免密码登录。实现步骤也比较简单,如下:
- 使用 ssh-keygen -t rsa 来创建密钥,程序会问你存放的目录,如果不需要修改,直接回车两次即可
- 将你~/.ssh目录中的id_rsa.pub这个文件拷贝到你要登录的服务器的~/.ssh目录中,然后再运行以下命令来将公钥导入到~/.ssh/authorized_keys这个文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,注意是管道符是 >>
另外要注意请务必要将服务器上
~/.ssh权限设置为700
~/.ssh/authorized_keys的权限设置为600
这是linux的安全要求,如果权限不对,自动登录将不会生效
完毕之后,退出服务器的登录,再使用ssh登录,你就会发现服务器不会再向你询问密码了.
深入一点点:
从表面上简单的理解一下登录的过程,
首先 ssh-keygen -t rsa 命令生成了一个密钥和一个公钥, 而且密钥可以设置自己的密码
可以把密钥理解成一把钥匙, 公钥理解成这把钥匙对应的锁头,
把锁头(公钥)放到想要控制的server上, 锁住server, 只有拥有钥匙(密钥)的人, 才能打开锁头, 进入server并控制
而对于拥有这把钥匙的人, 必需得知道钥匙本身的密码,才能使用这把钥匙 (除非这把钥匙没设置密码), 这样就可以防止钥匙被了配了(私钥被人复制)