Ssh

scp 到 AWS EC2 - 錯誤 - “請以使用者“ubuntu”而不是使用者“root”身份登錄。”

  • January 13, 2018

我正在嘗試將文件 scp 到 /var/www,因為我正在使用 apache。要移動文件,我會這樣做scp -i <ec2-shh-key> localfile root@<ec2-instance-ip>:/var/www/fileremote

但這給了我一個錯誤:

Please login as the user "ubuntu" rather than the user "root".

我怎麼解決這個問題?

編輯:我發現了這個超級使用者問題,它通過首先將文件 scp’ing 到非 sudo 目錄來回答問題,然後通過 ssh 傳遞 sudo mv 命令來移動文件。有沒有辦法只用 scp 一步完成?

如果您收到您列出的錯誤,那麼您沒有在 scp 命令中指定“ubuntu@”,或者您已將 /root/.ssh/authorized_keys 文件複製到 /home/ubuntu/.ssh/authorized_keys (這會很糟糕因為您無法使用 ssh 登錄)。

確實,一旦您開始指定“ubuntu@”,您將收到權限錯誤,但您可以使用如下命令解決此問題:

rsync -vazSHAX --rsync-path "sudo rsync" LOCALILE ubuntu@HOST:/var/www/REMOTEFILE

這裡的關鍵是 –rsync-path 選項。

rsync 命令甚至可以讓您複製整個目錄樹,如下所示:

rsync -vazSHAX --rsync-path "sudo rsync" LOCALDIR/ ubuntu@HOST:REMOTEDIR/

如果您使用 EC2 生成的密鑰對啟動實例,那麼您可能還需要在 rsync 中指定此選項,指向下載的 ssh 密鑰的本地副本:

--rsh "ssh -i KEYPAIR.pem"

這是我寫的一篇關於如何在 Ubuntu EC2 實例上使用 sudo、ssh、rsync 的文章:

在 EC2 的官方 Ubuntu 映像上使用 sudo、ssh、rsync

http://alestic.com/2009/04/ubuntu-ec2-sudo-ssh-rsync

這是一篇文章,我解釋瞭如何將您的預設個人 ssh 密鑰上傳到 EC2,以便 ssh 和 rsync 不需要額外的身份選項:

將個人 ssh 密鑰上傳到 Amazon EC2

http://alestic.com/2010/10/ec2-ssh-keys

引用自:https://serverfault.com/questions/388628