Ubuntu SSH 私匙和公匙的产生原理阐述
2016-05-13 16:57
465 查看
SSH(SecureShell)是目前比较可靠的为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。下面介绍的是Ubuntu中SSH的概念和使用的方法,具体内容如下所述。
什么是SSH
SSH的英文全称是SecureSHell,SSH协议族由IETF(InternetEngineeringTaskForce)的NetworkWorkingGroup制定,SSH协议的内容SSH协议是建立在应用层和传输层基础上的安全协议。通过使用SSH,你可以把所有传输的数据进行加密,这样”中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
传统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。
SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、Pop、甚至为PPP提供一个安全的”通道”。
最初SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。SSH是由客户端和服务端的软件组成的。SSH安装容易、使用简单,而且比较常见,一般的Unix系统、Linux系统、FreeBSD系统都附带有支持SSH的应用程序包。
让Ubuntu启动SSH服务
这个不用多说了,还是apt-getinstall大法:
不使用私钥的SSH还是有一定风险的。现在我们尝试在ubuntu服务器上生成私钥和公钥
后面会提示你私钥的文件名,放在哪,这些问题,选择默认就行了,中途会让你输入密码,这个你可得记住。这样你的用户目录下会多出一个隐藏的.ssh文件夹。可以使用ls-A来查看。里面还有两文件,一个是id_rsa(私钥),还有一个是id_rsa.pub(公钥)
此时用户目录的.ssh目录下生成id_rsa(私钥)、id_rsa.pub(公钥)
命令:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
这个私钥和公钥到底是什么概念?
简单说,公钥就是你的银行帐户,这个可能别人也知道,但只有手上有信用卡或是存折才能有资格去试帐户密码。所以这个信用卡和存折就是你的私钥。所以这个私钥得保存好。
也就是说,那个id_rsa文件你得保存好,可以弄到U盘上,随身带着。而id_rsa.pub得改成系统默认识别的authorized_keys并保存在.ssh文件夹下
现在服务器已经可以有两种方式的登陆了,一种就是直接用户密码识别登陆,还有一个是RSA登陆。当然,后面那个比较安全,那么我们就把服务器还有一种登陆方式给去掉。
找到etc/ssh/sshd.conf这个文件,它是负责服务器端上的设置的:
#最好把这个选项设置成“PermitRootLoginwithout-password”,这样“root”用户就不能从没有密匙的计算机上登录。把这个选项设置成“no”
#将禁止“root”用户登录,只能用“su”命令从普通用户转成“root”。
#把这个选项设置为“no”只允许用户用基于密匙的方式登录。
什么是SSH
SSH的英文全称是SecureSHell,SSH协议族由IETF(InternetEngineeringTaskForce)的NetworkWorkingGroup制定,SSH协议的内容SSH协议是建立在应用层和传输层基础上的安全协议。通过使用SSH,你可以把所有传输的数据进行加密,这样”中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
传统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。
SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、Pop、甚至为PPP提供一个安全的”通道”。
最初SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。SSH是由客户端和服务端的软件组成的。SSH安装容易、使用简单,而且比较常见,一般的Unix系统、Linux系统、FreeBSD系统都附带有支持SSH的应用程序包。
让Ubuntu启动SSH服务
这个不用多说了,还是apt-getinstall大法:
#sudoapt-getinstallssh
不使用私钥的SSH还是有一定风险的。现在我们尝试在ubuntu服务器上生成私钥和公钥
#ssh-keygen
后面会提示你私钥的文件名,放在哪,这些问题,选择默认就行了,中途会让你输入密码,这个你可得记住。这样你的用户目录下会多出一个隐藏的.ssh文件夹。可以使用ls-A来查看。里面还有两文件,一个是id_rsa(私钥),还有一个是id_rsa.pub(公钥)
此时用户目录的.ssh目录下生成id_rsa(私钥)、id_rsa.pub(公钥)
命令:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
这个私钥和公钥到底是什么概念?
简单说,公钥就是你的银行帐户,这个可能别人也知道,但只有手上有信用卡或是存折才能有资格去试帐户密码。所以这个信用卡和存折就是你的私钥。所以这个私钥得保存好。
也就是说,那个id_rsa文件你得保存好,可以弄到U盘上,随身带着。而id_rsa.pub得改成系统默认识别的authorized_keys并保存在.ssh文件夹下
现在服务器已经可以有两种方式的登陆了,一种就是直接用户密码识别登陆,还有一个是RSA登陆。当然,后面那个比较安全,那么我们就把服务器还有一种登陆方式给去掉。
找到etc/ssh/sshd.conf这个文件,它是负责服务器端上的设置的:
#最好把这个选项设置成“PermitRootLoginwithout-password”,这样“root”用户就不能从没有密匙的计算机上登录。把这个选项设置成“no”
#将禁止“root”用户登录,只能用“su”命令从普通用户转成“root”。
PermitRootLoginwithout-password
#把这个选项设置为“no”只允许用户用基于密匙的方式登录。
PasswordAuthenticationno
相关文章推荐
- mysql tcp 4层负载
- windows异常处理__try __except
- 72. Edit Distance
- 详解C++各种智能指针: auto_ptr, shared_ptr, weak_ptr, scoped_ptr
- JAVA单元测试Junit
- mysql tcp 4层负载
- mysql tcp 4层负载
- 微信内置浏览器的JsAPI(WeixinJSBridge续)[转载]
- LINQ,EF联合查询join
- POJ 3264Balanced Lineup(RMQ)
- full decommisson of GDC
- easyUi 添加
- hadoop hive安装,并使用mysql数据库
- Android的View绘制流程
- POJ 1363 Rails
- 求一个数的二进制逆序之后所对应的数
- @html.ActionLink的几种参数格式
- redhat6.4 zabbix3.0.2安装
- json用法及问题解决
- 15.7 擦除的神秘之处