(1)ssh 基本介绍
1.ssh 服务是加密协议, 默认端口是 22, 协议版本是 SSHv2,V1 有漏洞
2. 服务端: ssh 服务, sftp 服务
3. 客户端: ssh 命令, scp 命令
4. 服务器端组件
openssl: 负责远程加密
openssh: 负责远程连接
5.ssh 服务认证类型
基于口令的安全认证
基于密钥的安全认证: 客户端生成一对密钥, 客户端把自己的公钥推送到需要访问的服务器端, 客户端使用私钥加密数据, 服务器使用公钥解密数据
(2)ssh 配置优化
- #vim /etc/ssh/sshd_config
- Port 33222 // 修改 ssh 的默认端口
- PermitRootLogin no //root 用户禁止登陆
- PermitEmptyPasswords no // 禁止空密码登录
- UseDNS no // 不使用 DNS, 解决 ssh 登陆慢的问题
- GSSAPIAuthentication no // 解决 ssh 登陆慢的问题
- sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
- sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/sshd_config
- egrep -i "(usedns|gssapiauth)" /etc/ssh/sshd_config
- service sshd restart
(3)ssh 客户端命令
1.ssh 命令: 远程登陆或执行命令
- -p // 指定端口, 如果是默认 22 号端口, 可以不加
- ssh -p22 root@192.168.1.30 // 远程登陆
- ssh -p22 root@192.168.1.30 "ifconfig" // 不登陆远程主机执行命令
2.scp: 传递文件
选项:
- -P // 指定端口
- -r // 拷贝目录的时候, 如果想递归需要使用 - r
- -p // 保持属性
- scp -P22 -r /etc/ root@192.9.191.31:/tmp
例
- scp -P22 -r /etc/ root@192.9.191.31:/tmp // 把 / etc 目录拷贝到 31 主机的 / tmp 目录下,/etc 目录也拷贝过去了
- scp -P22 -r /etc/* root@192.9.191.31:/tmp // 把 etc 目录下所有文件传递到 31 主机的 / tmp 目录下
(4) 分发密钥
1. 生成公钥和私钥
- ssh-keygen -t rsa // 交互式生成公钥和私钥
- ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa // 非交互式生成公钥和私钥
2. 传递公钥
- ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.9.191.31 // 传递公钥
- ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 22 root@192.9.191.31" // 指定 ssh 端口传递公钥
- ssh root@192.9.191.31 "/sbin/ipadd a" // 执行命令
- scp -r /etc/* root@192.9.191.31:/tmp // 传递文件
- SSH
来源: http://www.bubuko.com/infodetail-2610295.html