作者:费小小微博_372 | 来源:互联网 | 2017-06-24 21:59
1.ssh及openssl简介:SSH:ssh是secureshell,是用来通过网络来提供安全的远程访问的工具,C/S结构,在ssh之前,最早的远程计算机连接工具是telnettelnet是使用明文通信的,所以安全性很差,除非紧急情况,否则不要使用telnet。ssh则比telnet安全许多,而openssl则是ssh的
1. ssh及openssl简介:
SSH:
ssh是secure shell,是用来通过网络来提供安全的远程访问的工具,C/S结构,在ssh之前,最早的远程计算机连接工具是telnet
telnet是使用明文通信的,所以安全性很差,除非紧急情况,否则不要使用telnet。
ssh则比telnet安全许多,而openssl则是ssh的一种开源实现,
OPENSSH
它可以作为 rlogin、 rsh rcp 以及 telnet 的直接替代品使用。 更进一步, 其他任何 TCP/IP 连接都可以通过 SSH 安全地进行隧道/转发。 OpenSSH 对所有的传输进行加密, 从而有效地阻止了窃听、 连接劫持, 以及其他网络级的攻击。OpenSSH 由 OpenBSD project 维护。
登录过程和使用 rlogin 或 telnet 建立的会话非常类似。 在连接时, SSH 会利用一个密钥指纹系统来验证服务器的真实性。 只有在第一次连接时, 用户会被要求输入 yes。 之后的连接将会验证预先保存下来的密钥指纹。 如果保存的指纹与登录时接收到的不符, 则将会给出警告。 指纹保存在 ~/.ssh/known_hosts 中, 对于 SSH v2 指纹, 则是 ~/.ssh/known_hosts2。
默认情况下, 较新版本的 OpenSSH 只接受 SSH v2 连接。 如果能用版本 2 则客户程序会自动使用, 否则它会返回使用版本 1 的模式。 此外, 也可以通过命令行参数 -1 或 -2 来相应地强制使用版本 1 或 2。 保持客户端的版本 1 能力是为了考虑较早版本的兼容性。
SSH有两个版本:
1. sshv1
sshv1 基于CRC-32做MAC(完整性校验),无加密,只是校验码,强烈建议不使用。非常不安全
2. sshv2
sshv2 基于双方主机的协商选择使用最安全的MAC方式
加密机制及MAC机制由双方协商选定:
基于DH算法,实现密钥交换,基于RSA或DSA实现身份认证
客户端通过检查服务器端的主机密钥来判断是否能够继续通信
实际使用中,可以通过命令行参数Protocol 2,1 来相应地强制使用版本 1 或 2。
保持客户端的版本 1 能力是为了考虑较早版本的兼容性。
也可以只写2,而放弃兼容不安全的sshv1
2. OPENSSH客户端:
openssh是C/S架构,所以就有服务端和客户端两部分组成,linux下常用的客户端软件ssh, windows下常用的有putty,xshell,secrecrt,sshshellclient等
2.1 openssh的客户端组件:
2.1.1 ssh 配置文件是/etc/ssh/ssh_config
语法:
ssh [username]@host [COMMAND] [-p PORT]
ssh -l username host [COMMAND]
|
#若没指定username,则使用本地当前用户尝试登陆,如果远程主机不存在此用户,会报错
#COMMAND,就是不远程登陆,只是在远程主机上执行COMMAND,然后将结果返回给本机。
例如:
需要获取192.168.229.202主机的ifconfig信息,ssh端口监听在2222端口上:
2.1.2 scp: 利用ssh协议在主机之间实现安全文件传输的工具
语法:
scp SRC1...DEST
分两种情况:
1. 原文件在本机,目标为远程
是将本地/path/to/somefile文件,以USERNAME用户登陆到远程主机HOST上,复制到远程主机的/path/to/somewhere
例如:
将本地/etc/fstab文件复制到www.881027.com主机上/tmp下, 注意www.881027.com主机的ssh端口是2222
2. 源文件在远程,本地为目标
-r: 复制目录时使用
-p: 保持源文件的元数据信息,包括属主,属组,mode,timestamp (如果远程主机不存在这个用户,也不行)
-q: 静默模式
-P PORT: 指定 ssh 协议监听的端口
例如:
将远程主机 /tmp/fstab 文件下载到本机 /etc 下
|
2.1.3 sftp: 基于ssh的ftp服务
sftp登陆进去,可以使用很多bash的命令,例如ls,cd, mkdir, put, get等ftp命令
用法: sftp USERNAME@HOST
例如:
sftp登陆到www.881027.com,ssh端口2222,并下载www.881027.com主机上/etc/fstab文件到本地
var cpro_id = "u6885494";