openssh

openssh

1.基础:

telnet:TCP/23端口,认证和数据的传输都是明文

SSH:Secure Shell tcp/22 安全shell  C/S模式

OpenSsh就是开源的ssh实现。

ssh版本:V1、V2但是V1中有缺陷,已经不怎么使用了。

linux下:

Openssh

ssh命令可以实现ssh远程登录(相当于客户端部分)。

 1.ssh -l username Remote_host

 2.ssh -l username Remote_host ‘command‘

 -X 和 -Y是两个用图形的参数,要求本地必须是图形。

sshd是linux上ssh的服务。

windows下:

Putty,SecureCRT,sshsecureshellclient,Xmanager

2.SSH两种安全验证:

从客户端来看,SSH提供两种级别的安全验证:

1.第一种级别是基于口令的安全验证

只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密, 但是不能保证你正在连接的服务器就是你想连接的服务器。这个过程如下:

(1)远程主机收到用户的登录请求,把自己的公钥发给用户。

(2)用户使用这个公钥,将登录密码加密后,发送回来。

(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。这种方式可能会有别的服务器在冒充真正的服务器,将公钥发送给客户端,客户端就会将密码加密后发送给冒充的服务器,冒充的服务器就可以拿自己的私钥获取到密码,也就是受到“中间人”这种方式的攻击。

值得一说的是当第一次链接远程主机时,会提示您当前主机的“公钥指纹”,询问您是否继续,如果选择继续后就可以输入密码进行登录了,当远程的主机接受以后,该台服务器的公钥就会保存到~/.ssh/known_hosts文件中。

  2. 第二种级别是基于密匙的安全验证

需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,

然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,

第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒,但是相比输入密码的方式来说10秒也不长。

3.用不同的SSh客户端实现密钥登录

在secureCRT下用密钥登录

SSH用RSA登陆:

开启wheel组(在/etc/sudoers设置)

useradd -g wheel  test

passwd test

mkdir  -p /home/test/.ssh/

cd /home/test/.ssh/

用rz将公钥上传到/home/test/.ssh/目录里面

(如果创建公钥的格式是:标准公钥和VanDyke私钥格式,需要用ssh-keygen -i -f转换。如果是OpenSSH密钥格式可直接修改文件名)

ssh-keygen -i -f /home/test/.ssh/Identity.pub > /home/test/.ssh/authorized_keys

chown -R test.wheel /home/test/.ssh/

chmod 700 /home/test/.ssh/

chmod 600 /home/test/.ssh/authorized_keys

在xshell用密钥登陆:

开启wheel组(在/etc/sudoers设置)

useradd -g wheel  test

passwd test

mkdir  -p /home/test/.ssh/

cd /home/test/.ssh/

用rz将公钥上传到/home/test/.ssh/目录里面

mv /home/test/.ssh/id_rsa_1024.pub > /home/test/.ssh/authorized_keys

chown -R test.wheel /home/test/.ssh/

chmod 700 /home/test/.ssh/

chmod 600 /home/test/.ssh/authorized_keys

4.两台linux主机之间如何基于密钥ssh登录。

1.生成密钥对

ssh-keygen -t {rsa,dsa} 生成公钥和密钥

-f 可以指定目录和文件名。

2.将公钥传到对方用户的家目录下的.ssh/authorized_keys

ssh-copy-id -i /path/to/public_Key [email protected] 这个可以直接将公钥放到指定的地方。

也可以使用scp实现,例如:

scp id_rsa.pub 192.168.101.220:~/.ssh/authorized_keys  

scp 有两个参数 -r 就是传递目录的 -a等价 -rp

scp [option] src dest

 还有一个好用的命令就是sftp这个可以从支持ssh的服务器并且支持sftp的服务器上现在东西,所以

 没有必要去管对方是否开启了ftp服务,并且数据是加密的。

 5.保证ssh安全需要考虑的内容:

    1)密码长度要长,密码要经常改换

2)不要使用默认的端口22 

3)限制登录客户端的地址

4)禁止管理员账户直接登录

5)仅允许指定用户登录

6)使用基于密钥的认证方式登录

7)禁止使用早起的V1版本的ssh。

时间: 2024-12-17 10:13:11

openssh的相关文章

openssl、openssh升级

近期公司应用需要用到https协议:Centos6.5自带的的openssl 1.0.1e版本存在名为"心脏出血"的漏洞. 环境:CentOS6.5_x86_64 准备相关的包openssh下载地址:http://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/openssl相关包下载:http://www.openssl.org/source/pam相关包下载:http://pkgs.org/centos-6/centos-x

Linux(Centos)配置OpenSSH无密码登陆

最近在搭建Hadoop环境需要设置无密码登陆,所谓无密码登陆其实是指通过证书认证的方式登陆,使用一种被称为"公私钥"认证的方式来进行ssh登录. 在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法.该工具做linux系统的远程管理是非常安全的.telnet,因为其不安全性,在linux系统中被搁置使用了. " 公私钥"认证方式简单的解释:首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub: 私钥文

RHEL6.5升级安装OPENSSH

openssh的运转需要openssl和zlib的支持,升级openssh最好同步升级openssl和zlib,避免出现不匹配的现象,此文只升级openssl和openssh. 1.安装telnet服务 # yum -y install telnet-server* # rpm -qa | grep telnet # vi /etc/xinetd.d/telnet 将disable字段改为no # chkconfig --list xinetd xinetd              0:关闭 

CentOS 6.6升级OpenSSH到最新版本7.5.p1

本文主要简单记录CentOS 6.6下OpenSSH升级步骤,安装编译所需工具包 yum install gcc pam-devel zlib-devel 一.升级原因7.4以下openssh版本存在严重漏洞:1.OpenSSH 远程权限提升漏洞(CVE-2016-10010)  2.OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478)  3.Openssh MaxAuthTries限制绕过漏洞(CVE-2015-5600)  OpenSSL>=1.0.1可以不用升级OpenS

OpenSSH应用

OpenSSH,一种用于远程登录的应用程序:登录是指在一个系统中拥有在这个系统中运行的一个用户的身份,当用户满足登录到这个系统的一个口令时即可正常登录:为什么要使用OpenSSH呢? Telnet是一种远程登录工具,他是系统自带的,但是Telnet在数据传输过程当中是以明文的形式传输的,这样就很容易被有心人抓包破解重要信息:而OpenSSH这种远程登录程序,他的所有传输过程都是加密的过程:这样就加大了中间人攻击的难度,它可以动态的设置加密密码,如dsa,rsa,ecdsa等: SSH有两个版本,

四、远程连接与openssh

4.1.openssh简介 传统的网络程序都是采用明文传输数据和密码,如telnet.ftp等,存在很大的安全漏洞,黑客只需要使用一些数据包截取工具就可以获得包括密码在内的重要数据.正因如此,后来才出现了SSH (Secure shell,安全命令壳).SSH是由芬兰的一家公司所研发的加密通信协议,所有SSH传输的数据都是经过加密,可以有效防止数据的窃取以及'中间人'的攻击.SSH建立在应用层和传输层基础上的安全协议,监听tcp的22号端口,属于是文本协议.OpenSSH是SSH的替代软件,完全

简单的openssh自动升级脚本

在使用前需要注意: 在/tmp/123下面有这三个文件: zlib-1.2.11     openssh-7.4p1   openssl-1.0.2k 安装必要的工具 gcc以及其依赖包,建议直接用yum安装GCC 安装好TELNET 脚本执行完成后,先看SSH版本再重启服务. cd /tmp/123tar -zxvf zlib-1.2.11.tar.gzcd zlib-1.2.11 ./configure --prefix=/usr/local/zlibmakemake installmkdi

HP Unix openssl、openssh 升级

一.升级前请先启用telnet服务!防止远程ssh连接断开后无法连到服务器上. 二.准备好下面的5个包,这几个包是升级openssh和openssl所依赖的. 下面的包的官网下载地址是http://hpux.connect.org.uk/hppd/packages_popular.html gettext-0.19.8.1-ia64-11.31.depot.gz  libiconv-1.14-ia64-11.31.depot.gz openssh-7.4p1-ia64-11.31.depot.g

【linux基础】26、openssh基础

一.远程登录协议 1.telnet简介 以前,很少有人买得起计算机,更甭说买功能强大的计算机了.所以那时的人采用一种叫做Telnet的方式来访问Internet:也就是把自己的低性能计算机连接到远程性能好的大型计算机上,一旦连接上,他们的计算机就仿佛是这些远程大型计算机上的一个终端,自己就仿佛坐在远程大型机的屏幕前一样输入命令,运行大机器中的程序.人们把这种将自己的电脑连接到远程计算机的操作方式叫做"登录",称这种登录的技术为Telnet(远程登录). 2.Telnet的工作原理 当你

OpenSSH由5.3升级到7.3pl

第一步 准备升级包 openssh相关包openssh-7.3p1.tar.gzopenssl-1.0.2j.tar.gzzlib-1.2.8.tar.gz telnet相关包telnet-0.17-47.el6_3.1.x86_64.rpmtelnet-server-0.17-47.el6_3.1.x86_64.rpmxinetd-2.3.14-39.el6_4.x86_64.rpm远程操作选择telnet; 第二步 安装工具包 telnet安装 [[email protected] teln