& ldquo; Сервер отказал наш ключ & rdquo; при входе в Ubuntu на EC2 в качестве другого пользователя

Если вы используете bash, вы можете просто запустить:

shopt -s globstar
for d in **/; do mkdir -p "$d"/Photo; done

Опция globstar делает ** совпадением «все файлы и 0 или более каталогов и подкаталогов». Другими словами, он все рекурсивно соответствует. Из-за / в конце **/ будет соответствовать всем каталогам и подкаталогам (без файлов). Поэтому $d будет перебирать все каталоги в текущем каталоге, а их подкаталоги и каталог Photos будут созданы в каждом из них.

Флаг -p в mkdir означает:

  -p, --parents
          no error if existing, make parent directories as needed

Здесь я просто использую его для подавления сообщений об ошибках, если целевой каталог уже существует. Удалите его, если вы хотите увидеть ошибки.

Обратите внимание, что это не приведет к созданию подкаталога Photo в целевом каталоге, который содержит файл с именем Photo. Вы не указали, что следует делать в этих случаях, хотя и все остальные ответы, опубликованные до сих пор, также имеют это ограничение.

3
задан 18 February 2012 в 03:14

1 ответ

Да, ключевая пара привязана к пользователю ubuntu. После создания новых пользователей вам нужно будет поместить ключ, который вы хотите использовать в $HOME/.ssh/authorized_keys. Его немного сложно, так как вам также необходимо убедиться, что $ HOME / .ssh имеет безопасные разрешения

chmod 0700 $HOME/.ssh

и что файл authorized_keys также имеет защищенные разрешения

chmod 0600 $HOME/.ssh/authorized_keys

. Один трюк состоит в том, чтобы просто скопировать файл ключа пользователя ubuntu новым пользователям, если вы просто хотите использовать тот же ключ.

sudo cp -arf /home/ubuntu/.ssh /home/myuser/.ssh
chown -R myuser.myuser /home/myuser/.ssh

Если вы настроили пароль для этих новых пользователей (не рекомендуется на самом деле .. пароли перебора принудительной атаки серверов SSH неумолимы в Интернете), вы также можете сделать это со своей клиентской машины:

ssh-copy-id user@host

Которая будет обрабатывать все разрешения для вас. Также, если вы храните свой ключ в своей учетной записи Launchpad.net, вы можете сделать

ssh-import-id your-launchpad-user

И он вытащит ваш ключ из панели запуска (эта команда была переименована в ssh-import-id в 11.04 и позже) .

5
ответ дан 10 August 2018 в 08:49

Другие вопросы по тегам:

Похожие вопросы: