SSH
(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端口传递公钥
3.免输入密码执行命令和传递文件
ssh root@192.9.191.31 "/sbin/ipadd a" //执行命令
scp -r /etc/* root@192.9.191.31:/tmp //传递文件