环境:远程:AWS - RHEL 7.2 本地:Ubuntu 16.04
我直接使用 .pem 文件通过 SSH 连接到 AWS 盒子进行身份验证,大致如下:
ssh -i /home/<user>/<path>/<serverkey>.pem ec2-user@ec2-<awsserver>.us-west-2.compute.amazonaws.com
我想做的只是下载一个不属于 root 用户、而是由另一个用户拥有的文件,因此通常的 scp 魔法无法轻易发挥作用。
有什么建议么?
答案1
就我个人而言,我会调查为什么sftp
或scp
不起作用。
从技术上讲你可以这样做:
ssh -t user@host 'cat /path/to/file' > out.file
这可能不是生成一个相同的文件,但可能足以满足您的需求。
例如,我的测试用例传输生成了一个带有 CRLF (dos) 行终止符的文件,而原始文件有 LF (unix) - 老实说,我不知道为什么。文件的其余部分是相同的。也没有测试二进制文件。
测试是从 Linux 到 FreeBSD 进行的。
答案2
ssh — OpenSSH SSH client (remote login program)
scp — secure copy (remote file copy program)
sftp — secure file transfer program
使用 scp 或 sftp。用法示例;
scp [email protected]:/home/ec2-user/.bashrc download-bashrc.txt
所有三个都与 ssh 守护进程一起使用。
ps,要获取其他用户的文件,请确保您的用户具有该文件的读取权限(chmod/chown,或将文件复制到您用户的家中)。