Linux无密登陆的实现

来源:互联网 发布:网络传播概论 彭兰 编辑:程序博客网 时间:2024/06/04 18:01

主要介绍Linux无密登陆的实现,以及非对称加密身份认证的介绍。

基本原理:功能实现主要依赖于公钥与私钥。也就是非对称加密相关的东西,涉及到的概念包括公钥、私钥。

如上图:用户登录到主机A(root用户登录的),现在他想在主机A上登陆到主机B(以denggh这个用户),但是主机B为了安全需要要求用户输入用户名密码。密码这个东西的主要作用就是实现用户身份认证的,所以我们可以使用别的方式来认证用户的合法性。

1、公钥与私钥

      主机A生成一对密钥,分公钥和私钥,私钥自己保管,将公钥交给主机B。当A想登陆主机B时,就会用私钥加密一些东西交给B,B就拿着A给他的公钥去解密。如果B解密成功了,就说明是A,那么就让他登陆,如果B解密失败,说明这个来源不是A为非法用户。

2、生成公钥与私钥

      从上面可知,第一步就是生成公钥与私钥:

      当前登录到A主机(192.168.133.80)以root用户身份登陆,其他任何身份都可以。命令行输入ssh- 按两下tab键提示当前可用ssh-开头的命令一共有5个,其中1是用来拷贝公钥到其他机器上的,2是用来生成公钥与私钥的。因此输入命令ssh-keygen -t rsa 回车

      -t:type 类型,密钥加密类型,使用rsa算法加密。

      3处:需要输入密钥使用密码,这个密码是为了保护密钥而存在的,如果你要使用这个密钥加密或者解密则需要输入使用这个密钥的密码,此处直接回车不填。表名使用这个密钥不需要密码,直接用就行了。

      4处:确认命令,直接回车。

      5处:告诉你,你的私钥存放在哪里,私钥注意保管。

      6处:告诉你你的公钥存放在哪里,公钥可以随意发放。

3、拷贝公钥到B主机上

      

      上图1标识处问你是不是要连接B主机。2标识处输入登录B主机密码。

      使用ssh-copy-id命令, -i参数表示传输认证文件,也就是公钥。接着就是 用户@主机或者ip。 用户可以省略,默认是当前用户,因为我使用root用户登录A的,所有如果省略就是使用root用户登录B。

      执行命令之后,则在主机B的对应用户的家目录下存在一个隐藏文件夹,叫做.ssh,该目录下有个authorized_keys文件,保存了A主机的公钥信息。

      做完这些就可以无密码登陆了,使用命令:ssh denggh@192.168.133.80

4、执行成功了,总结

# ssh-keygen -t rsa# ssh-copy-id -i ~/.ssh/id_rsa.pub denggh@192.168.133.80

PS: 参考 http://blog.csdn.net/readiay/article/details/50489309

1 0