Назад | Перейти на главную страницу

scp в AWS EC2 - ошибка - «Пожалуйста, войдите в систему как пользователь« ubuntu », а не как пользователь« root ».»

Я пытаюсь скопировать файл в / 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".

Как я могу решить эту проблему?

РЕДАКТИРОВАТЬ: я обнаружил этот вопрос суперпользователя который отвечает на вопрос, сначала отправляя файл в каталог, отличный от sudo, а затем передавая команду sudo mv через ssh для перемещения файла. Нет возможности сделать это за один шаг с помощью только scp?

Ты можешь. Создайте группу, скажите «www-admin», добавьте свое имя пользователя в эту группу, chown / var / www / fileremote в: www-admin и chmod этот путь, чтобы разрешить групповую запись.

Конечно, если путь был изменен на что-то другое (нестандартная группа), эта группа потеряет весь доступ. Но в этом случае просто добавьте свое имя пользователя в эту группу.

Если вы получаете указанную вами ошибку, значит, вы не указываете «ubuntu @» в команде scp, или вы скопировали файл /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"

Вот статья, которую я написал о том, как использовать sudo, ssh, rsync в экземплярах Ubuntu EC2:

Использование sudo, ssh, rsync в официальных образах Ubuntu для EC2
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

Я пришел сюда в поисках ответа и на эту проблему.

В моем случае, хотя я неправильно скопировал ~root/.ssh/authorized_keys в другую учетную запись, вместо того, чтобы копировать предполагаемый ~ubuntu/.ssh/authorized_keys.

Пользователь root authorized_keys В файле есть специальная команда, запрещающая соединение.