作用:基于C/S架构的服务,建立TCP上的一个远程登录服务,该服务监听与众所周知的22号端口之上

基于软件的具体实现:

OpenSSH: ssh协议的开源实现,CentOS默认安装
dropbear:另一个开源实现

注:dropbear在bosybox上可以安装此服务实现远程登录

SSH的协议版本: v1: 基于CRC-32做MAC,不安全;man-in-middle
v2:双方主机协议选择安全的MAC方式
基于DH算法做密钥交换,基于RSA或DSA实现身份认证

配置文件详解: 服务器端陪住文件:/etc/ssh/sshd_config 客户端配置文件:/etc/ssh/ssh_config ask:询问是不是需要将对方主机的公钥,ask代表需要,可以改成no,那么就不需要输入yes 端口号:可以修改成别的端口号,客户端在登录时要指定端口号才可以 改服务器端的配置文件,把端口号改成别的端口号 vim /etc/ssh/ssh_config 改完之后重启服务 systemctl restart sshd 用别的主机连此主机的2222号端口 ssh 192.168.1.11 -p 2222 用法: 执行一次性任务,会打印在标准输出上,执行完后会退出当前的主机 -p :指定连接的端口号

基于key的验证(我想要连接谁,不需要密码,就把自己的公钥拷贝给别人): 1, 首先在客户端生成一对密钥(公钥和私钥),在家目录下的.ssh目录中 交互式生成:ssh-keygen -t rsa 命令生成:ssh-kengen -t rsa -N ' ' -f /root/.ssh/id_rsa Enter file in which to save the key (/root/.ssh/id_rsa):指定生成的密钥存放的目录,默认存放在/root/.ssh/id_rsa下,可以不输入 Enter passphrase (empty for no passphrase):输入密钥的加密密码,可以不输入 Enter same passphrase again:再次确认输入的密码 2,客户端把公钥拷贝到服务器的.ssh目录下,默认拷贝到root目录下 ssh-copy-id -i .ssh/id_rsa 192.168.1.12 3,服务器基于key验证,不用再主机上执行任何服务 在要登录的主机上启用ssh的代理服务,不需要输入密钥的密码 几台主机之间连接不需要密码,把生成的密钥对分别拷贝到这几台主机上。相当于这几台主机用的是相同的key

1,把之前生成的文件在三台主机之间相互拷贝,在主机之间相互连接时,相当于连接自己的端口,所以不需要任何密码 scp -rp .ssh 192.168.1.12:/root/

2,在要登录的主机上启用ssh的代理服务 ssh-agent bash ssh-add 注: scp拷贝的缺点:会拷贝已经存在的文件,没有任何意义,相当于Windows中的替换功能

rsync: 相对于scp,rsync并且会跳过已经存在的文件,(用rsync实现连个服务器之间目录的同步)

注: 使用安全的shell连接做为传输方式 rsync -av /etc server1:/tmp 复制目录和目录下文件 rsync -av /etc/ server1:/tmp 只复制目录下文件