使用具有不同用户名的ssh客户端从Linux服务器复制文件

使用具有不同用户名的ssh客户端从Linux服务器复制文件,linux,ubuntu,ssh,Linux,Ubuntu,Ssh,我有一台安装了ssh服务器的linux机器,我可以使用username=“ubuntu”访问服务器。ssh服务器阻止尝试使用“root”用户名进行连接的客户端 因此,可以通过以下方式进行连接: ssh -i mykey ubuntu@myserver 我可以使用以下方法获取属于“ubuntu”的文件: scp-i我的钥匙ubuntu@myserver: ./ 但是,我真正想要的是获取属于“root”用户名的文件(注意:出于明显的安全原因,我无法使用用户名“root”访问服务器) 那么有没有办

我有一台安装了ssh服务器的linux机器,我可以使用username=“ubuntu”访问服务器。ssh服务器阻止尝试使用“
root
”用户名进行连接的客户端

因此,可以通过以下方式进行连接:

ssh -i mykey ubuntu@myserver
我可以使用以下方法获取属于“ubuntu”的文件:

scp-i我的钥匙ubuntu@myserver: ./
但是,我真正想要的是获取属于“root”用户名的文件(注意:出于明显的安全原因,我无法使用用户名“root”访问服务器)

那么有没有办法下载“root”用户名下的文件呢

我正在考虑在服务器端使用一些魔法,使我能够做到这一点。(我不知道如何:)


如果这有助于:我有根访问权限,也可以在服务器端创建文件。但是我不允许更改根目录下的文件权限(如果有人获得这些文件,我将被解雇)

你可以用另一种方法

使用所需的文件登录电脑

ssh ubuntu@myserver
然后获得超级用户权限

sudu su
然后复制你想要的文件

scp /the_file_you_want ubuntu@myhost:/the_location_and_filename_you_want
您可以在这里找到其他一些方法 在您的计算机上启用ssh (如果是fedora)(对于ubuntu,您可以在谷歌上轻松找到命令)

从您的本地计算机

 ssh -i ubuntu@myserver
换根

su
输入密码

并使用scp复制文件

scp somefile.extension randomuser@localmachine:/some/path/

我希望这会有帮助

你可以试试这样的怪物

ssh ubuntu@myhost 'sudo cat /path/to/file | uuencode' | uudecode > path/to/local
在共同响应的主机上应该有
uuencode
uudecode

或者,如果文件是文本,您可以跳过uuencode部分


ps:请参阅相关

问题是无法通过ssh访问我的本地计算机。(它不是服务器)啊,好的。这就是我把链接放进去的原因。在这里,您可以找到一些有趣的方法,在没有scp的情况下使用tar来实现这一点,但只有ssh。问题是,我无法在本地计算机上启用ssh服务器。它是公司路由器下的一台windows机器。所以绝对没有办法)我试过这个代码,它因为某种原因被卡住了。我用“sudo su”代替“su”。这可能是个问题吗?它可能在等待密码。尝试找到将密码作为参数传递给su的选项,我刚刚将代码更改为“sudo cat/path/to/file”,并且成功了。(因为只复制文本文件,所以我没有使用uuencode)。thx伙计,这很有帮助。你能把代码改一下吗?这样我就可以在回答时打勾了。但对于其他人来说,可能需要另一种方式来获得所需的许可。
scp somefile.extension randomuser@localmachine:/some/path/
ssh ubuntu@myhost 'sudo cat /path/to/file | uuencode' | uudecode > path/to/local