curl : linux中的一个文件下载传输工具,是一款强大的http命令行工具,支持文件的上传和下载
curl用法:
1、curl ?url(获取网页的文本信息) ? : ? curl www.baidu.com ?
2、curl ?-i ? url(获取网址的文本信息以及协议头部信息)
3、curl ?-o ?/root/haha.txt http://www.baidu.com : 把网页内容保存在本地的haha.txt文件中并不是目录,没有文件的话会自动创建一个
4、curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo : 下载centos 7到 /CentOS-Base.repo里面
curl -O http://www.linux.com/hello.sh ? : ?把hello.sh文件下载到本地名字为hello.sh
wget 是一个下载文件的工具,支持HTTP,HTTPS和FTP协议
1、wget url ?: 下载文件
2、wget -O ?haha.sh ? http://www.linux.com/hello.sh ?: ?下载hellow.sh并改名为haha.sh
3、wget -b ?: ?等同于&,后台下载
4、wget ?--spider ?http://www.linux.com/dodo1.JPG ?: ?解析能否下载但是不会下载
5、wget -P /root/haha ?http://www.linux.com/dodo1.JPG ?: ?指定dodo1.JPG下载到/root/haha目录下面
ssh登录
ssh username@ip ?'ls /etc ; cat /root/test' ? : ?远程执行命令
-p : 指定远程主机的端口号
-X : 远程调用图形需要登录时加-X选项
ssh ?root@server?
密码验证:默认的验证方式
密钥验证:免密登录,非对称加密
对称加密(一把密钥既能加密又能解密,同一把密钥算法是一样的) : 在生产环境下,client给文件加密之后需要把密钥和文件一同发给server,此时容易被截获文件和密钥,从而获取文件内容,安全性较低
gpg -c ?file1 : ?给file1文件加密,并生成file1.gpg文件
gpg file1.gpg ?: ?给file1.gpg解密
非对称加密(两把钥匙,一把公钥一把私钥,公钥用于加密,私钥用与解密) : ssh用的非对称加密client将文件加密
免密登录(client,server) : ?因为是在~/.ssh/目录下,所以免密针对的是某一用户
client想免密登录server的场景,server验证client
1、在client用ssh-keygen生成一对密钥(一个公钥和一个私钥),生成公私钥的时候可以给私钥加密,并且指定私钥存放的路径,为了防止别人登录的时候能获得root的权限
2、在client然后把公钥发给server : ssh-copy-id ?-i ?~/.ssh/id_rsa.pub ?root@server,第一次发送的时候需要密码验证,输入yes的时候,在client会生成一个known_hosts文件(文件里面存放的是server的主机名、ip、和server在/etc/ssh/目录下安装系统时就有的公私钥文件)
3、发送成功在server的~/.ssh/目录下就有一个authorized_key文件(此文件里面存放的是client发送的公钥)
4、完成上面步骤就可以直接免密登录了
总结: 首先client在发送公钥的时候,server会接受client发送的请求,输入yes之后server和client就交换公钥(注意:server里面的公钥是装好系统本来就有的,并非ssh-keygen生成的),然后在client输入server的密码,在此过程中是client会用server的公钥加密随机字符串,发送给server,server用自己的私钥解密
中间人攻击场景:?
1、client已经连接过server
2、此时在client的~/.ssh/目录下已经有了known_hosts文件
3、known_hosts里面存放的是server的ip信息、主机名和/etc/ssh/目录下的公钥信息
4、若server重装了系统(公钥和私钥会重新生成),或者有机器拿走了这对钥匙,与known_hosts文件的内容不一致,此时就会出现中间人攻击
5、只需要把known_hosts文件里对应的配对信息重新生成就行(就是删除,重新ssh用密码验证)
在/etc/ssh/sshd_config中
Port 22 ?: ?默认sshd的服务端口号
ListenAddress 0.0.0.0 : 设定sshd服务器监听的ip地址
PermitRootLogin yes : 是否允许root用户登录
MaxAuthTries 6 ?: ?最大密码尝试次数
MaxSessions 10 ?: ?最大的会话个数
PasswordAuthentication yes : ?允许密码验证
PermitEmptyPasswords no ?: ?是否允许空密码登录
?