SSH免密码登录远程服务器
密钥
生成密钥对:
1 | $ ssh-keygen –t rsa |
直接回车生成密钥对:id_rsa和id_rsa.pub,默认存储在/home/你的用户名/.ssh/
下。
授权
顾名思义,想要终端自动替你完成密码的输入,那么你就得把获取密码的权限给它。
把id_rsa.pub追加到授权的key里面去:
1 | $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys |
修改授权key的权限:
1 | $ chmod 600 ~/.ssh/authorized_keys |
单机免密登录
修改SSH配置文件:
1 | $ sudo gedit /etc/ssh/sshd_config |
找到下面三行,将注释取消掉(就是将前面的#删掉,如果有的话),修改成如下:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
至此就配置好了单机环境上的SSH服务,测试一下:
1 | $ service sshd restart // 重启ssh服务 |
服务器免密SSH登录
以上只完成了单机环境的ssh免密登录,要远程连接其它的服务器,还需要进一步配置:
把我们的钥匙(公钥)送给服务器。
1 | $ scp ~/.ssh/id_rsa.pub katherine@124.16.137.12:~/ // 将公钥复制到远程服务器的~/目录下 |
复制的时候还是需要输入服务器的密码,但是等我们把远程SSH免密登录配置好之后再连接就可以不用输入密码了。
我们已经把公钥传输到了目的服务器上,还需要把这个公钥追加到服务器的授权key中。(注意:如果服务器没有生成过ssh-key,那么.ssh目录需要手动创建,或者使用命令ssh-keygen -t rsa生成秘钥,它会自动在用户目录下生成.ssh目录。特别注意的是.ssh目录的权限问题,记得运行下chmod 700 .ssh命令)
连接上服务器后上使用命令:
1 | $ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys // 追加本地机器之前传输到这个服务器上的公钥到授权key中 |
回到客户机来,测试连接:
1 | $ ssh katherine@124.16.137.12 // 应该可以直接连接服务器了 |
- 本文链接:http://katherineleeyq.cn/2018/04/18/SSH免密码登录远程服务器/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!