通过sftp命令行上传文件至Akamai CDN
在尝试上传文件到Akamai时顺便学会了一个新linux命令sftp。
我做这个上传接口拥有的资源是:我的文件,akamai的域名地址,用户名,已申请并获得权限的公私钥和一个指定的文件夹目录。基于这些条件,我需要知道:
- 如何通过sftp用指定密钥登录Akamai
- 如何通过sftp上传文件
通过查询sftp文档,了解到登陆ftp服务器非常简单,只需键入以下命令:
sftp <user>@<host>:<path>
便会进入sftp的命令行模式:sftp >
。
但在实验中,遇到ssh会因没有将域名加入白名单域名列表中可能有安全隐患而报错。这个白名单域名列表在linux和mac系统中存在于路径~/.ssh/config
,跟我们已获得权限的ssh密钥存在于同一文件夹下。这个文件中需要包含以下内容:
Host <host>
HostKeyAlgorithms=+ssh-dss
然后只需继续使用命令行便可以上传:
sftp > put <file_path>
也可以做一些其他在linux系统上可以做的同样的文件操作。如创建文件夹:
sftp > mkdir <folder>
另外,由于我想使用指定密钥,stackoverflow到了以下非常有用的指定私钥文件地址的方法:
sftp -oIdentityFile=/path/to/key