root @ mickey: / # su goofy & amp; & amp; ssh goofy.com & mdash; почему это не удается?

Микки (вошедший в систему как root) пытается использовать учетную запись goofy для входа в ssh на goofy.com.

root@mickey:/#su goofy && ssh goofy.com

однако, это не может войти в тупой на goofy.com, вместо этого: goofy @ mickey: / $ (работал только su goofy, поэтому тупые выходы:

goofy@mickey:/$ exit
exit
Permission denied (publickey).

я бы ожидать ошибку разрешения для любого пользователя, кроме тупого. Как я могу сделать

su goofy
ssh goofy.com 

в одну строку?

2
задан 3 September 2013 в 12:46

2 ответа

Несколько причин:

  • Если вы просто хотите использовать ssh как другого пользователя удаленно, укажите имя пользователя:

    ssh goofy@server
    # or 
    ssh -u goofy server
    
  • Если вам нужно изменить пользователя локально и затем запустить ssh как этого пользователя, используйте su правильно. su разветвляется на собственный сеанс, поэтому команды, с которыми вы его связываете, будут выполняться после его окончания. Вы можете перевести свою команду на:

    Превратиться в бестолкового и после того, как я закончу (и предположим, что это сработало), запустить ssh.

    Посмотрите на аргумент -c / --command в su (запустите man su для руководства) или посмотрите на команду sudo, которая, на мой взгляд, имеет более логичный синтаксис. Вот как вы должны правильно написать свою команду (при условии, что это действительно то, что вы хотите сделать):

    su -c "ssh goofy.com" goofy
    # or
    sudo -u goofy -- ssh goofy.com
    
0
ответ дан 3 September 2013 в 12:46

Поскольку su goofy открывает новый сеанс, но && ssh goofy.com перейдет к оригиналу. Таким образом, команда && ssh goofy.com выполняется от первоначального пользователя, а не от su.

Попробуйте в одной строке: sudo -u goofy -H sh -c "ssh goofy.com"

0
ответ дан 3 September 2013 в 12:46

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

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