ssh之openssh使用
2015-09-29 23:32
225 查看
1、ssh简介
ssh是secure shell的简称,是一种在应用层和传输层的安全协议。这个协议保证了传输数据的安全,各位所熟知的ftp,telnet等比较老的协议传输数据的时候都是使用明文传输的,假如数据包被拦截会存在极大的风险。ssh是一种协议,真正去实现的有很多种方式,openssh就是一款开源的ssh实现。2、ssh登陆的常见方式与原理浅析
2.1 openssh服务器搭建
在linux系统中搭建openssh服务非常简单,只要运行命令sudo apt-get install openssh-server,安装完成之后ssh服务自动开启,使用ps -ef|grep ssh可以看到root 1066 1 0 Sep23 ? 00:00:09 /usr/sbin/sshd -D root 3852 1066 0 08:53 ? 00:00:00 sshd: ubuntu [priv]
只有当一台主机安装并启动了ssh服务才能通过ssh-client远程登陆该主机,默认情况下安装之后通过ssh-client,输入用户名和密码即可登陆。
2.2 通过密钥登陆
为了安全,有的主机希望通过密钥文件登陆(为什么凭密钥登陆就安全呢,因为若是一般人设置的密码都不会太长,可以通过暴力的方式破解,但是通过密钥文件就不一样了,密钥可是很长的),那么需要做以下几件事:1>禁止使用密码登录;修改/etc/ssh/ssh_config文件,添加如下行
PasswordAuthentication yes #必要的时候更改端口也是一种安全措施 Port 222>密钥登陆
这个情况相对复杂一些假设主机A要访问主机B,那么使用密钥登陆的流程是怎么样的呢
首先主机A必须有一对密钥对,私钥和公钥,而且主机A的公钥应该告诉主机B;
当主机A要登陆主机B的时候,主机B给主机A发送一个随机数
主机A收到随机数然后使用私钥加密发送给主机B
主机B用A的公钥来机密,解密成功之后发现随机数正确就允许登陆
看到上述过程那么我们要做的事情有两件
1、主机A生成密钥对,在主机A上使用ssh-keygen函数(前提是主机A也安装了ssh),生成之后查看/文件会发现多出了两个个文件id_rsa(私钥)、id_rsa.pub(公钥)
ls ~/.ssh
authorized_keys id_rsa id_rsa.pub2、将主机A的公钥里面的内容复制到放到主机B的~/.ssh/authorized_keys文件中
3、通过主机B登陆主机A就可以通过密钥来访问了;安装集群的时候会涉及到主机之间ssh数据无密码传输,就可以通过这个方法来实现,需要注意的是主机A在使用ssh-keygen来生成密钥对的时候密码要为空才能做到无密码登陆
相关文章推荐
- ad7888 linux driver
- nginx+tomcat
- 安装潮流组合--LAMP+NFS(编译php-fpm模块与apache2.4结合)
- 第 十 八 天 : 构 建 一 个 基 础 的 discuz 论坛
- linux内核对rootfs的挂载
- Linux NTP服务详解
- 新网站迟迟不被百度收录的几个解决办法
- 网站优化之新站文章不收录的因素
- ubuntu下hadoop配置指南
- ubuntu安装hadoop详细方法
- 浅谈Linux中的信号处理机制(三)
- linux文件操作之cat、more、less、head、tail、wc命令
- shell 玩转文件描述符 和 重定向
- Linux内核源码分析--内核启动之(6)Image内核启动(do_basic_setup函数)(Linux-3.0 ARMv7)【转】
- Linux内核源码分析--内核启动之(5)Image内核启动(rest_init函数)(Linux-3.0 ARMv7)【转】
- Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7)【转】
- AOJ Property Distribution (dfs_连通性)
- Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3.0 ARMv7) 【转】
- Linux内存管理 【转】
- Linux经常使用的命令-权利管理命令-权利管理命令chmod