赞
踩
通过SSH实验远程登陆有两种方式:口令登录和公钥登录。本文将从这两种登陆方式的原理展开来讲解如何实现SSH免密登录服务器。
● SSH(Secure Shell,安全外壳)是一种网络安全协议,为建立在应用层基础上的安全协议。SSH较为可靠,专为远程登录会话和其他网络服务提供安全性。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,可以通过加密和认证机制实现安全的访问和文件传输等业务。
● SSH两种安全验证方式:基于口令的安全验证、基于密钥的安全验证
● SSH默认端口为22
假设主机A需要远程连接服务器B,只要A知道B的帐号和密码,就可以登录到远程主机,并且所有传输的数据都会被加密。但是这种通过口令登陆的方式不能保证正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
假设主机A需要远程连接服务器B,此时主机A需要为自己生成一对密钥(公钥+私钥),并把自己的公钥存放在服务器B上的~/.ssh/authorized_keys
的文件里,当主机A向服务器B发送请求后,服务器B会在自己的~/.ssh/authorized_keys
文件中查找是否有主机A的公钥,如果ssh_key
文件中存放的主机A的公钥和主机A发送请求时的公钥一致,那么服务器B就会向主机A发送质询,主机A使用私钥对质询进行解密再发送给服务器B,B确认质询后同意建立会话。
基于密钥的安全验证不需要在网络上进行密码的传输并且私钥永远掌握在主机A手里,因此可以很好的抵抗中间人攻击。
通过对SSH两种安全验证机制的了解,可以发现使用口令登录的方式需要输入密码,而使用公钥登陆的方式避免了输入密码这个步骤。因此SSH基于密钥的安全验证方式可以实现SSH远程免密登录。
实现SSH免密登录的步骤如下:
~/.ssh/authorized_keys
文件中使用ssh-keygen
生成一对密钥,生成的私钥将存放在用户目录下的.ssh/id_rsa
中,公钥将存放在用户目录下的.ssh/id_rsa.pub
中
生成的两个密钥文件:
首先登录服务器,将刚刚在本机生成的公钥复制到服务器的~/.ssh/authorized_keys
文件中
查看authorized_keys
文件,可以看到公钥已经被写入。
~/.ssh/authorized_keys
文件中可以存放多个主机的公钥,每个公钥后面会使用主机名来区分
完成以上设置后在本机使用SSH可以免密登录服务器
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。