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

Использование sudo в WinSCP

Мне нужно обновить httpd.conf в /usr/local/apache/conf дорожка.

Я сгенерировал SSH-ключ в cpanel и выбрал его в Advanced options в разделе SSH / Authentication.

Также я пробовал два разных варианта SCP / Shell в этом разделе (по умолчанию, /bin/bash, sudo su -)

И поскольку я записываю протокол, я выбираю SCP.

И я могу войти в систему, но получаю сообщение об отказе в разрешении, что я не могу редактировать или загружать файл. Я также пытался установить 777 для папки и 664 для файлов, но это также не позволяет мне сделать это изменение.

Я использую Centos 6.5.

Журнал сеанса:

2014-01-06 08:23:13.128 Using SCP protocol.
. 2014-01-06 08:23:13.128 Doing startup conversation with host.
. 2014-01-06 08:23:13.182 Skipping host startup message (if any).
! 2014-01-06 08:23:13.182 stdin: is not a tty
! 2014-01-06 08:23:13.182 sudo: sorry, you must have a tty to run sudo
. 2014-01-06 08:23:13.182 Server sent command exit status 1
. 2014-01-06 08:23:13.182 Disconnected: All channels closed
* 2014-01-06 08:23:13.241 (EFatal) **Connection has been unexpectedly closed.** Server sent command exit status 1.
* 2014-01-06 08:23:13.241 Error skipping startup message. Your shell is probably incompatible with the application (BASH is recommended).

Я хочу поделиться своим решением, потому что я также несколько раз ищу обходной путь. Я использую CentOS7 прямо сейчас и пытаюсь установить соединение через WinSCP (Pubkey Auth).

sshd_config

..
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys
PasswordAuthentication no
UsePAM yes
..

@CentOS visudo - добавить следующие 2 записи

username ALL=NOPASSWD: /bin/su
Defaults:username !requiretty

Настройки WinSCP:

Disable keyboard-interactive @ SSH authentication settings solves the problem for me. 
SCP settings command: sudo su -

Как предложил @pragnesh, вы найдете все инструкции в FAQ по WinSCP. Как изменить пользователя после входа в систему (например, su root)?

Не только вам нужно добавить sudo -s оболочка и yourusername ALL=NOPASSWD: ALL линии (или аналогичной) к sudoers, но вам также необходимо убедиться, что sudo не требует TTY.

Хотя это поведение по умолчанию, вы можете настроить его по-другому. Убедитесь, что вы удалили requiretty вариант из sudoers файл.

Вы также можете изменить это значение только для каждого пользователя, см. sudoers: как отключить requiretty для каждого пользователя.

Вам необходимо использовать sudo при настройке входа в систему с WinSCP

Проверь это WinSCP FAQ.