我需要httpd.conf
在/usr/local/apache/conf
路径中更新。
我已经在 cpanel 中生成了 SSH 密钥,并在 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).
答案1
我想分享我的解决方案,因为我也多次寻找解决方法。我现在正在使用 CentOS7,并尝试通过 WinSCP(公钥认证)建立连接。
sshd_配置
..
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 -
答案2
正如@pragnesh 所建议的,您可以在 WinSCP FAQ 中找到所有说明登录后如何更改用户(例如 su root)?
您不仅需要向 添加sudo -s
shell和yourusername ALL=NOPASSWD: ALL
行(或类似内容)sudoers
,而且还需要确保sudo
不需要TTY。
虽然这是默认行为,但您可能对其进行了不同的配置。请确保requiretty
从文件中删除该选项sudoers
。
您也可以只按用户更改此设置,请参阅sudoers:如何禁用每个用户的 requiretty。
答案3
您需要在 WinSCP 登录设置中使用 sudo
检查一下WinSCP 常见问题解答。