我谨慎地遵循了说明here但是我没有正确使用它。这是我做的:
跳过启动消息时出错。您的 shell可能与之不兼容 申请(建议使用BASH)。
注意:这适用于Putty
答案 0 :(得分:8)
归功于this post和this AWS forum thread,似乎诀窍就是
在sudoers中注释掉Defaults requiretty
。我的程序现在:
sudo visudo
,一个编辑/ etc / sudoers的特殊命令。Defaults requiretty
行。在该行之前插入一个哈希符号(#
)以将其注释掉:#Defaults requiretty
:wq
以写入文件并退出visudo
。在WinSCP中:
sudo su -
。.ppk
文件)。答案 1 :(得分:2)
我遇到了同样的问题,并使用本教程中的步骤解决了这个问题。我会在这里发布它,但我没有足够的图像/屏幕代表。
http://cvlive.blogspot.de/2014/03/how-to-login-in-as-ssh-root-user-from.html
答案 2 :(得分:1)
WinSCP不支持需要终端仿真或用户输入的命令。
请参阅:http://winscp.net/eng/docs/remote_command#limitations
由于sudo su -
需要密码,因此无法使用。
有一种解决方法:在不提示输入密码的情况下进行root
登录。您可以通过编辑通常位于/etc/sudoers
并添加:
root ALL=NOPASSWD: ALL
毋庸置疑,这不是一件好事 - 原因应该是显而易见的:)
答案 3 :(得分:1)
以下教程为我工作,并提供了有用的截图。以具有sudo权限的普通用户身份登录只需要调整一些WinSCP选项。 http://cvlive.blogspot.de/2014/03/how-to-login-in-as-ssh-root-user-from.html
将会话/文件协议设置为:SCP,输入主机/实例IP,端口 - 通常为22,以及常规用户名。如果登录需要,请输入密码凭据。 添加高级/ SSH /身份验证/私钥文件。
取消选中高级/ SSH /身份验证/尝试“键盘交互”身份验证应该允许Advanced / Environment / SCP Shell / Shell / Shell:sudo su - 为非所有者用户提供访问webserver目录的sudo权限。
更新08/03/2017
WinSCP日志记录有助于解决问题: https://winscp.net/eng/docs/logging
[WinSCP]可以从“首选项”对话框的“日志”页面启用日志记录。 也可以使用/ log和/ xmllog从命令行启用日志记录 参数分别对脚本特别有用。 在.NET程序集中,使用启用会话日志记录 Session.SessionLogPath1)。
根据WinSCP连接错误,某些服务器安装可能需要在(Ubunto,CentOS,other-Linux-Server)/ etc / sudoers文件中添加指令,以便不要求指定用户使用TTY。在/etc/sudoers.d/中创建文件(使用Amazon命令行界面或PuTTY等工具)可能比编辑/ etc / sudoers更好。一些/ etc / sudoers版本推荐它:
必须使用'visudo'命令以root身份编辑此文件。 请考虑在/etc/sudoers.d/中添加本地内容而不是 直接修改此文件。 有关如何编写sudoers文件的详细信息,请参见手册页。
通过命令行编辑sudoers文件(以root用户身份)时,应使用'visudo'命令打开文件,因为它将解析文件以查找语法错误。 /etc/sudoers.d/文件通常由root拥有,并使用最小权限进行编码。可以引用默认的/ etc / sudoers文件,因为它应该在安装时自动具有推荐的chmod权限。例如:0440 r - r -----。
https://superuser.com/a/869145:
visudo -f /etc/sudoers.d/somefilename
Defaults:username !requiretty
有用的链接:
WinSCP论坛:
WinSCP文档:https://winscp.net/eng/docs/faq_su
使用SCP协议,您可以将以下命令指定为自定义shell 在“高级站点设置”对话框的SCP / Shell页面上:
sudo -s
[...]
请注意,由于WinSCP无法实现终端仿真,因此您需要 有sudoers选项requiretty关闭。
Ubuntu Apache / etc / sudoers中的说明建议将指令添加到/etc/sudoers.d而不是直接编辑/ etc / sudoers。根据安装情况,向/etc/sudoers.d/cloud-init添加指令也可以。
通过遵循实例文档中提供的步骤来创建具有sudo权限的SSH测试用户可能会有所帮助,以确保用户具有推荐的实例设置,并且可以实现和删除对服务器sudoer文件的任何更新,而不会影响其他用户。
答案 4 :(得分:-2)
在SCP / Shell设置下,选择/ bin / bash。而不是“sudo su - ”。
它应该有用。