提交 b8c14423 编写于 作者: 厉害2333's avatar 厉害2333

更新

上级 b684c17a
......@@ -50,13 +50,13 @@ curl ftps://files.are.secure.com/secrets.txt
curl --ftp-ssl ftp://files.are.secure.com/secrets.txt
```
通过ssh获取sftp服务器上的文件(`-u` 参数后要写登录sftp服务器的用户名,如果连接服务器成功,会让你输入密码):
通过ssh获取sftp服务器上的文件(`-u` 参数后要写登录sftp服务器的用户名(也可以直接在用户名后面加密码但要用 `:` 分割,如 admin@123456789),如果连接服务器成功,会让你输入密码):
```bash
curl -u username sftp://example.com/etc/issue # example.com 纯属虚构,只是个事例
```
使用ssh从scp服务器上获取文件(在本地生成密钥,使用--key参数引入密钥在计算机上的位置。简要概括就是密钥免去了密码验证,如果密钥有密码请看下一个,这个也是需要看的)
使用ssh从scp服务器上获取文件(在本地生成私钥,使用 `--key` 参数引入私钥在计算机上的位置。简要概括就是私钥免去了密码验证,如果密钥有密码请看下一个,这个也是需要看的)
```bash
curl -u username: --key ~/.ssh/id_rsa scp://example.com/~/file.txt
......@@ -117,3 +117,81 @@ curl -o baidu.html https://www.baidu.com/
```bash
curl -O https://www.baidu.com/index.html
```
## 给网页传输密码
curl能传输密码,既然能传输密码就能登录网页。
### Ftp
使用用户名密码登录ftp服务器,获取文件:
```bash
curl ftp://name:passwd@machine.domain:port/full/path/to/file
```
格式
```bash
curl ftp://<用户名>:<密码>@xxx.com:port/xxx
```
`<用户名>:<密码>` 后,有一个 `@` ,你注意到了吗?这种登录方式不仅能在ftp协议网址中用,还能在其他协议中用。
或者使用 `-u` 参数登录,:passwd可以省略,只用有用户名就好了,如果连接上了服务器会让你输入密码:
```bash
curl -u name:passwd ftp://machine.domain:port/full/path/to/file
```
### FTPS
它和ftp相似,如果你看了前面的ftps文件获取实例,你肯定发现了它需要一个 `--ftp-ssl` 参数。
请注意!建议不要不加 `--ftp-ssl` 参数获取文件,或者直接使用ftp(ftp://)协议
### SFTP / SCP
这两个和FTP相似,但是你可以使用 `--key` 参数来指定要使用的私钥的位置,而不是登录的密码密码。请注意,私钥可能受有密码保护,需要输入密码;该密码是使用 `--pass` 参数指定的。通常,curl将自动从私钥文件的目录下提取公钥,但是curl在没有适当的库支持的情况下,必须使用 `--pubkey` 选项指定的公钥文件的位置。
### HTTP
curl还支持HTTP网址的登录操作:
```bash
curl http://name:passwd@machine.domain/full/path/to/file
```
和ftp一样,还有一种:
```bash
curl -u name:passwd http://machine.domain/full/path/to/file
```
----
HTTP提供了许多不同的身份验证方法,curl支持这些身份验证方法:Basic、Digest、NTLM、Negotiate(SPNEGO)。你可能不知道使用哪种方法,所以curl默认为Basic。您还可以使用 `--anyauth` 参数让curl从服务器可使用身份验证方法中选择最安全的验证方法。
注意!根据URL规范,HTTP网址不能包含用户和密码,当通过网络代理使用curl时,这种方法不会起作用,尽管在其他时候curl允许这样做。使用网络代理时,用户和密码必须使用 `-u` 参数。
### HTTPS
最常用于私有证书。
### Proxy
curl支持HTTP和SOCKS代理服务器,并提供多个的身份验证方法。它没有对FTP代理服务器支持,这个服务器目前没有标准,但是它仍然可以和其它许多服务器一起工作。您还可以使用HTTP和SOCKS代理在FTP服务器之间传输文件。
使用名为my-proxy的HTTP代理获取ftp文件,代理的端口是888(使用 `-x` 参数指定代理服务器):
```bash
curl -x my-proxy:888 ftp://ftp.leachsite.com/README
```
使用代理登录网页:
```bash
curl -u user:passwd -x my-proxy:888 http://www.get.this/
```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册