ssh服务:安全的远程登录,实现加密通信,代替传统的 telnet 协议

服务器端:sshd

服务器端的配置文件: /etc/ssh/sshd_config
常用参数:

Port                 #生产建议修改
ListenAddress ip
LoginGraceTime 2m
PermitRootLogin yes  #默认ubuntu不允许root远程ssh登录
StrictModes yes      #检查.ssh/文件的所有者,权限等
MaxAuthTries  6      #pecifies the maximum number of authentication attempts permitted per connection. Once the number of failures reaches half this
value, additional failures are logged. The default is 6.
MaxSessions  10             #同一个连接最大会话
PubkeyAuthentication yes    #基于key验证
PermitEmptyPasswords no     #空密码连接
PasswordAuthentication yes  #基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10     #单位:秒
ClientAliveCountMax 3      #默认3
UseDNS yes                 #提高速度可改为no
GSSAPIAuthentication yes   #提高速度可改为no
MaxStartups                #未认证连接最大值,默认值10

设置 ssh 空闲60s 自动注销

Vim /etc/ssh/sshd_config
ClientAliveInterval  60
ClientAliveCountMax  0

ssh客户端:

ssh
常用用法:

指定远程登录的用户名(与本地名相同可以省略user@)
ssh user@ip

在远程主机上执行命令
ssh  user@ip  'COMMOND'

关闭第一次远程连接验证
ssh  user@ip -o StrictHostKeyChecking=no

指定远程服务器的端口
ssh  user@ip   -p port

生成密钥对
ssh-keygen 
    -t  指定类型 [dsa | ecdsa | ed25519 | rsa | rsa1]

复制密钥到远程主机(实现免密登录)
ssh-copy-id user@ip 



远程传输数据
scp
    -r  递归
    -p 保持原文件的属性信息    
    -q 静默模式
    -v  显示详细输出
    -l  限制传输带宽

从本地复制到远程
scp  /src/a.txt user@ip:/src

从远程复制到本地
scp  user@ip:/scr/test.txt /root/


rsync:使用安全的shell连接做为传输方式,比scp更快,基于增量数据同步
常用参数:
    -n 模拟复制过程
    -v 显示详细过程
    -r 递归复制目录树
    -p 保留权限
    -t 保留修改时间戳
    -g 保留组信息
    -o 保留所有者信息
    -l 将软链接文件本身进行复制(默认)
    -L 将软链接文件指向的文件复制
    -u 如果接收者的文件比发送者的文件较新,将忽略同步
    -z 压缩,节约网络带宽
    -a 存档,相当于-rlptgoD,但不保留ACL(-A)和SELinux属性(-X)
    --delete 源数据删除,目标数据也自动同步删除

用法和scp一样
rsync  [option]  src    dest