ssh的使用
1.0 ssh基本使用与原理
使用:ssh -p 端口 username@xxx.xxx.xxx.xxx
Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置。
2.0 中间人攻击
SSH之所以能够保证安全,原因在于它采用了公钥加密。
整个过程是这样的:
(1)远程主机收到用户的登录请求,把自己的公钥发给用户。
(2)用户使用这个公钥,将登录密码加密后,发送回来。
(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
这个过程本身是安全的,但是实施的时候存在一个风险:如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。因为不像https协议,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。
可以设想,如果攻击者插在用户与远程主机之间(比如在公共的wifi区域),用伪造的公钥,获取用户的登录密码。再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了。这种风险就是著名的”中间人攻击”(Man-in-the-middle attack)。
3.0 ssh登录
1.1 ssh口令(密码)登录
ssh xxx.xxx.xxx.xxx(如果用户不是root,在ip地址前加用户名@)
首次登录到目标主机,或者目标主机rsa变化时,会出现如图的提示:
这段话的意思是,无法确认host主机的真实性,只知道它的公钥指纹,问你还想继续连接吗?
确认之后输入密码进行登录认证。
3.2 ssh公钥登录
在本地机器上使用ssh-keygen产生公钥私钥
从运行过程可知公钥保存的文件:/root/.ssh/id_rsa.pub
生成公钥之后可以查看文件确定成功
将公钥复制到目标机器:
ssh-copy-id -i .ssh/id_rsa.pub 用户名字@192.168.x.xxx
之后就可以直接无密码登录目标机器了。