@spiritnotes
2016-02-01T15:03:57.000000Z
字数 702
阅读 1779
SSH
ssh: secure shell
常规网络服务程序在传输上不安全,安全验证方式更是容易受到“中间人”攻击。而ssh是将传输的数据均进行加密,防止中间人攻击,同时对数据进行压缩,减少传输时间。
中间人攻击: 就是“中间人”冒充服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送就完全被“中间人”知晓。
RSA公钥系统:非对称加密系统,利用了大整数的求质原理,一次会产生一对密钥,利用公钥加密的文本只能通过私钥才能解开
SSH主要使用的是基于密钥的安全验证,在接受数据的一方先产生一对密钥,然后将公钥发送给发送端,而发送端采用公钥加密后将数据传送给接受端,这样只有接受端可以解码出正确数据。
从上面可以看到,其实攻击者仍然可以模拟服务端,采用伪造的公钥私钥实行中间人攻击。
这里没有特别好的办法,只能是服务端将其公钥的MD5(公钥指纹RSA key fingerprint)公布在网站上,以供核对。
而用户登录后,其公钥会添加到本地的known_hosts中。
ssh还可以支持免密码登录,也即是公钥登录。用户将自己的公钥存放在远程主机上,登录的时候,远程主机会向用户发送一段采用用户公钥加密的随机数据,然后与用户采用私钥解密后返回的数据进行比较,如果比对成功,则允许登录。
#远程登录
ssh -p 23 user@host
ssh-keygen -t rsa -C "spiritwiki@qq.com"
ssh -T git@github.com