Микки (вошедший в систему как 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
в одну строку?
Несколько причин:
Если вы просто хотите использовать ssh как другого пользователя удаленно, укажите имя пользователя:
ssh goofy@server
# or
ssh -u goofy server
Если вам нужно изменить пользователя локально и затем запустить ssh
как этого пользователя, используйте su
правильно. su
разветвляется на собственный сеанс, поэтому команды, с которыми вы его связываете, будут выполняться после его окончания. Вы можете перевести свою команду на:
Превратиться в бестолкового и после того, как я закончу (и предположим, что это сработало), запустить
blockquote>ssh
.Посмотрите на аргумент
-c
/--command
вsu
(запуститеman su
для руководства) или посмотрите на командуsudo
, которая, на мой взгляд, имеет более логичный синтаксис. Вот как вы должны правильно написать свою команду (при условии, что это действительно то, что вы хотите сделать):su -c "ssh goofy.com" goofy # or sudo -u goofy -- ssh goofy.com
Поскольку su goofy
открывает новый сеанс, но && ssh goofy.com
перейдет к оригиналу. Таким образом, команда && ssh goofy.com
выполняется от первоначального пользователя, а не от su
.
Попробуйте в одной строке: sudo -u goofy -H sh -c "ssh goofy.com"