SSH有两种登录方式, 一是口令登录, 即常规的用户名密码登录; 二是公钥登录, 只要在server端配置好client端的公钥, 就可以实现免密登录. 控制端为client端, 远程主机为server端, 下同.
1. 生成公钥
在client端输入命令然后一路回车
ssh-keygen
2. 将公钥上传至server端
运行结束以后,在client端~/.ssh/目录下,会新生成两个文件:id_rsa.pub
和 id_rsa
。前者是你的公钥,后者是你的私钥。这时再输入如下命令,将公钥传送到远程主机host上面:
ssh-copy-id user@host
3.server端公钥配置
server端将用户上传的公钥,保存在用户主目录的 ~/.ssh/authorized_keys
文件中。
公钥就是一段字符串,server端把它追加到了authorized_keys文件的末尾。
4. OpenWrt配置
原本以上配置就ok了,但是OpenWrt的ssh采用的是dropbear,一种轻量级的ssh服务。需要对其进行额外配置:
cp ~/.ssh/authorized_keys /etc/dropbear/
大功告成 ->
作者:Jessewo
链接:https://www.jianshu.com/p/7f5f727a2b60
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
3.2 SSH 公钥免密码登陆
ssh-keygen -t rsa //生成公钥
cat id_rsa.pub > authorized_keys //将id_rsa.pub内容放到目标.ssh/authorized_keys里
这个是老生常谈的公钥免登陆,这种用法不只是用在留后门,还可以在一些特殊情况下获取一个交互的shell,如struts写入公钥,oracle写入公钥连接,Redis未授权访问等情景。
chmod 600 id_rsa
ssh -i id_rsa root@192.168.0.113