11

我仔细按照此处的说明进行操作,但是我没有正确地进行此操作。这是我所做的:

  1. 运行 WinSCP 输入主机名(我的实例的弹性 IP)
  2. 输入用户名“ec2-user”
  3. 输入公钥文件
  4. 选择 SCP 作为协议
  5. 在 SCP/Shell 设置下,我选择了“sudo su -”
  6. 点击登录
  7. WinSCP 向我询问密码密钥,点击 OK
  8. 显示此错误

跳过启动消息时出错。您的 shell 可能与应用程序不兼容(推荐使用 BASH)。

注意:这适用于腻子

4

6 回答 6

10

归功于这篇文章这个 AWS 论坛主题,看来诀窍是Defaults requiretty在 sudoers 中发表评论。我现在的程序:

  1. 使用 Putty 登录到您的 EC2 实例。
  2. 运行sudo visudo,一个特殊的命令来编辑 /etc/sudoers.
  3. 按插入键启动插入模式。
  4. 找到线Defaults requiretty。在该行之前插入一个井号 ( #) 以将其注释掉:
    #Defaults requiretty
  5. 按 Esc 键退出插入模式。
  6. 键入:wq以写入文件并退出visudo

在 WinSCP 中:

  1. 在 Advanced > Environment > SCP/Shell 下,将 Shell 更改为sudo su -.
  2. 在 SSH > 身份验证下,选择您的私钥文件 ( .ppkfile)。
于 2014-08-05T01:38:28.963 回答
2

WinSCP 不支持需要终端仿真或用户输入的命令。

请参阅:http ://winscp.net/eng/docs/remote_command#limitations

由于sudo su -需要密码,因此它不起作用。

有一种解决方法:在root不提示输入密码的情况下进行登录。您可以通过编辑通常位于的 sudoers 文件/etc/sudoers并添加:

root ALL=NOPASSWD: ALL

不用说,这不是一件好事 - 原因应该很明显:)

于 2011-06-23T04:48:30.617 回答
2

我遇到了同样的问题,并使用本教程中的步骤解决了它。我会在这里发布它,但我没有足够的图像/屏幕代表。

http://cvlive.blogspot.de/2014/03/how-to-login-in-as-ssh-root-user-from.html

于 2014-03-06T12:49:18.140 回答
1

以下教程对我有用,并提供了有用的屏幕截图。以具有 sudo 权限的普通用户身份登录只需要调整一些 WinSCP 选项。 http://cvlive.blogspot.de/2014/03/how-to-login-in-as-ssh-root-user-from.html

将会话/文件协议设置为:SCP,输入主机/实例 ip、端口(通常为 22)和常规用户名。如果登录需要,请输入密码凭据。添加高级/SSH/身份验证/私钥文件。

取消选中 Advanced/SSH/Authentication/attempt "keyboard interactive" authentication 应该允许 Advanced/Environment/SCP Shell/Shell/Shell: sudo su - 提供 sudo 权限以作为非所有者用户访问网络服务器目录。


2017 年 8 月 3 日更新

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 版本推荐它:

此文件必须以 root 身份使用“visudo”命令进行编辑。请考虑在 /etc/sudoers.d/ 中添加本地内容,而不是直接修改此文件。有关如何编写 sudoers 文件的详细信息,请参见手册页。

通过命令行编辑 sudoers 文件(以 root 身份)时,应使用“visudo”命令打开文件,因为它将解析文件以查找语法错误。/etc/sudoers.d/ 文件通常由 root 拥有并以最小权限进行 chmod。可以引用默认的 /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 协议,您可以在 Advanced Site Settings 对话框的 SCP/Shell 页面上将以下命令指定为自定义 shell:

须藤-s

[...]

请注意,由于 WinSCP 无法实现终端仿真,您需要关闭 sudoers 选项 requiretty。

Ubuntu Apache /etc/sudoers 中的说明建议将指令添加到 /etc/sudoers.d 而不是直接编辑 /etc/sudoers。根据安装情况,向 /etc/sudoers.d/cloud-init 添加指令也可以。

按照实例文档中提供的步骤创建具有 sudo 权限的 SSH 测试用户可能会有所帮助,以确保用户具有推荐的实例设置,并且可以在不影响其他用户的情况下影响和删除对服务器 sudoer 文件的任何更新。

于 2017-05-10T02:30:53.927 回答
0

我在 Debian Linux 服务器上启用了 SSH root 登录:要在 Debian Linux 系统上为 root 用户启用 SSH 登录,您需要首先配置 SSH 服务器。打开/etc/ssh/sshd_config并更改以下行:

FROM:
PermitRootLogin without-password
TO:
PermitRootLogin yes

完成上述更改后,重新启动 SSH 服务器:

/etc/init.d/ssh restart

来源

然后我在winscp中使用带有root用户名的SCP文件协议。

于 2022-02-23T07:51:50.177 回答
-2

在 SCP/Shell 设置下,选择 /bin/bash,而不是“sudo su -”。

它应该工作。

于 2013-05-31T11:19:30.873 回答