ssh之openssh使用

来源:互联网 发布:矩阵的谱范数怎么求 编辑:程序博客网 时间:2024/05/17 08:31

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 -Droot      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 22
2>密钥登陆

这个情况相对复杂一些假设主机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.pub
2、将主机A的公钥里面的内容复制到放到主机B的~/.ssh/authorized_keys文件中

3、通过主机B登陆主机A就可以通过密钥来访问了;安装集群的时候会涉及到主机之间ssh数据无密码传输,就可以通过这个方法来实现,需要注意的是主机A在使用ssh-keygen来生成密钥对的时候密码要为空才能做到无密码登陆



0 0
原创粉丝点击