2.1 ssh服务
SSH服务
ssh: secure shell,protocol,22/tcp,安全的远程登录 1 SSH是标准的网络协议,可用于大多数UNIX操作系统,能够实现字符界面的远程登录管理,它默认使用22号端口,采用密文的形式在网络中传输数据,相对于通过明文传输的Telnet,具有更高的安全性。 2 SSH协议版本 3 两种方式的用户登录认证: 两种验证有何不同之处 这两者都是通过密文传输数据的。 OpenSSH基于C/S结构 ssh,配置文件:/etc/ssh/ssh_config ssh客户端语法:ssh [选项][用户@] host [命令] 选项: -p:远程服务器监听的端口 ssh -t remoteserver1 ssh remoteserver2 SSH客户端1 允许实现对远程系统经验证地加密安全访问 基于passwd验证原理1 客户端发起ssh请求,服务器会把自己的公钥发送给用户 2 用户会根据服务器发来的公钥对密码进行加密 3 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功 基于key验证原理1 首先在客户端生成一对密钥(ssh-keygen) 2 并将客户端的公钥ssh-copy-id 拷贝到服务端 3 当客户端再次发送一个连接请求,包括ip、用户名 4服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:acdf 5 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端 6 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端 7服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录 实现基于密钥的安全验证必须为用户自己创建一对密钥,并把共有的密钥放在需要访问的服务器上。当需要连接到SSH服务器上时,客户端软件就会向服务器发出请求,请求使用客户端的密钥进行安全验证。服务器收到请求之后,先在该用户的根目录下寻找共有密钥,然后把它和发送过来的公有密钥进行比较。如果两个密钥一致,服务器就用公有的密钥加密“质询”,并把它发送给客户端软件(putty,xshell等)。客户端收到质询之后,就可以用本地的私人密钥解密再把它发送给服务器,这种方式是相当安全的。 步骤: 基于key验证登录
实现批量基于Key验证 实例:实现100台主机的基于key验证 //结合expect工具将公钥推送到到100台主机上 #!/bin/bash **rpm -q expect&> /dev/null||yum install expect -y** **ssh-keygen -P"" -f "/root/.ssh/id_rsa"** **password=centos** **whileread ipaddr;do #调用expcet脚本** **expect <<EOF** **set timeout 10** **spawn ssh-copy-id$ipaddr** **expect {** "yes/no"{ send "yesn";exp_continue } "password"{ send "$passwordn" } **}** **expect eof** **EOF** **done < ip.txt** 想要完成多主机基于Key验证,方法有二:方法一:将所有主机包括本主机的公钥复制到一台主机上,然后再将这台主机上的 authorized_keys 文件复制到其他所有主机上,推荐。 方法二:所有主机使用同一对密钥,因为基于 Key 验证,破解一台主机后所有主机也可以免密登陆,所以破解难度与方法一相同。 SSH应用? scp命令用于基于ssh登陆进行安全的远程文件全量拷贝。 scp [email?protected]:/root/.ssh/authorized_keys [email?protected]:/root/.ssh/ #将远程74主机上的文件复制到远程主机69上 语法:scp [选项][用户@]网络地址:/远程文件 本地目录 选项: -C: 压缩数据流 rsync命令用于基于ssh登陆进行安全的远程文件增量拷贝。语法:rsync [选项] 本地文件 网络地址:远程文件 rsync [选项] 网络地址:远程文件 本地文件 rsync [选项] 本地文件/网络地址:远程文件 [email?protected] rsync]# tree #源主机上的文件 3 directories,10 files 基于ssh和rsh服务实现高效率的远程系统之间复制文件使用安全的shell连接做为传输方式 rsync -av /etc/ 192.168.30.74:/data #会只复制etc下的文件,类似于cp -r ? rsync –av /etc/ server1:/tmp 只复制目录下文件 rsync -av /etc 192.168.30.74:/data #会连同etc目录一同复制,类似于cp --parents 比scp更快,只复制不同的文件选项: --existing 只同步目标端已有的文件 --ignore-existing 只复制目标端不存在的文件 rsync -av --existing /data/rsync/ 192.168.30.75:/data/rsyncrsync -av --ignore-existing /data/rsync/ 192.168.30.75:/data/rsync--backup 备份文件 --backup-dir= 备份至指定目录--exclude 排除匹配的文件--remove-source-files 删除已经同步的源文件--delete 删除目标端的不同步文件(多删,少补)(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |