ssh 无密码验证

    使用SSH也不是绝对安全的,因为不可能阻止别人暴力破解你的密码。如果密码过于简单,那更容易被攻击了。

    保护主机安全是使用VPS的必修课。大多数时候,我们都使用SSH来管理系统。这时如果密码很长很复杂,谁都不乐意,不仅是登录,每次sudo都要打密码(我可不会用root裸奔)。所以较好的解决方案是使用不那么复杂的密码,而登录不输密码。两全其美。

    1. 生成ssh密钥对:  ssh-keygen -t rsa
      默认key目录是~/.ssh   其中id_rsa是私钥不可以公开,id_rsa.pub是公钥可以随意公开,然后也是需要传给目标服务器的。
      cpu7
    2. 将公钥加入目标主机的~/.ssh/authorized_key
      这里方法就好多了,最简单的是先ssh过去,然后vim ~/.ssh/authorized_key,再粘帖。不管这么低端的,来几个酷炫的。 

      • scp -P 22 ~/.ssh/id_rsa.pub [ip]:id_rsa.pub然后再ssh到目标主机,执行 cat id_rsa.pub >> ~/.ssh/authorized_key
        还是麻烦啊。
      • cat ~/.ssh/id_rsa.pub | ssh -p 22 user@ip "cat >> ~/.ssh/authorized_keys"
        好了,输完密码就能成功配置,下次ssh就不需要再打密码了。这个方法牛X啊,ssh居然还有这种用法,完全不知道啊。
      • ssh-copy-id -p 22 user@ip  最简单的。。。

    到此,目标主机已经不用输密码就可以登录了。然后还有一些技巧可以提高安全性。修改ssh配置文件:

  1.  修改ssh的默认端口,默认为Port 22,可以修改为其他的,以后登录时加上-p 或者 -P
  2. 不允许密码登录。PasswordAuthentication no     (要时刻备份密钥,否则没了就跪了)
  3. 不允许root登录。PermitRootLogin no
  4. 上面是基本的,还有其他的自己适当调整

    另外android也有很好的ssh客户端,叫server auditor,支持无密码登录内置key生成工具,可以试一试,也可以防止丢了一个私钥,做个备份。

    参考链接: