Amazon ec2 WinSCP连接到Amazon AMI EC2实例,在登录到";根“;

Amazon ec2 WinSCP连接到Amazon AMI EC2实例,在登录到";根“;,amazon-ec2,sudo,putty,scp,winscp,Amazon Ec2,Sudo,Putty,Scp,Winscp,我仔细地遵循了说明,但是我还没有使它正常工作。以下是我所做的: 运行WinSCP输入主机名(我的实例的弹性IP) 输入用户名“ec2用户” 输入公钥文件 为协议选择了SCP 在SCP/Shell设置下,我选择了“sudo su——” 点击登录 WinSCP要求我输入密码密钥,点击OK 显示此错误 跳过启动消息时出错。你的 shell可能与 应用程序(建议使用BASH) 注意:这适用于油灰 WinSCP不支持需要终端仿真或用户输入的命令 见: 由于sudo su-需要密码,因此无法使用 有一种解决

我仔细地遵循了说明,但是我还没有使它正常工作。以下是我所做的:

  • 运行WinSCP输入主机名(我的实例的弹性IP)
  • 输入用户名“ec2用户”
  • 输入公钥文件
  • 为协议选择了SCP
  • 在SCP/Shell设置下,我选择了“sudo su——”
  • 点击登录
  • WinSCP要求我输入密码密钥,点击OK
  • 显示此错误
  • 跳过启动消息时出错。你的 shell可能与 应用程序(建议使用BASH)

    注意:这适用于油灰

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

    见:

    由于
    sudo su-
    需要密码,因此无法使用

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

    root ALL=NOPASSWD: ALL
    

    不用说,这不是一件很好的事情——原因很明显:)

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


    它应该可以工作。

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

    有了和的功劳,看来诀窍在于 注释掉sudoers中的默认要求。我现在的程序是:

  • 使用Putty登录到EC2实例
  • 运行
    sudovisudo
    ,这是一个用于编辑/etc/sudoers的特殊命令
  • 按插入键以启动插入模式
  • 查找所需的行
    Defaults
    。在该行之前插入一个散列符号(
    #
    )以注释掉它:
    #默认要求
  • 按Esc键退出插入模式
  • 键入
    :wq
    写入文件并退出
    visudo
  • 在WinSCP中:

  • 在高级>环境>SCP/Shell下,将Shell更改为
    sudo su-
  • 在SSH>身份验证下,选择您的私钥文件(
    .ppk
    文件)

  • 下面的教程对我很有用,并提供了有用的屏幕截图。作为具有sudo权限的普通用户登录只需要调整一些WinSCP选项。

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

    取消选中Advanced/SSH/Authentication/trument“keyboard interactive”身份验证应允许Advanced/Environment/SCP Shell/Shell/Shell:sudo su-为作为非所有者用户访问Web服务器目录提供sudo权限


    更新日期:2017年3月8日

    WinSCP日志记录有助于解决问题:

    [WinSCP]可以从“首选项”对话框的“日志记录”页面启用日志记录。 还可以使用/log和/xmllog从命令行启用日志记录 参数,这对脚本编写特别有用。 在.NET程序集中,使用启用会话日志记录 Session.SessionLogPath1)

    根据WinSCP连接错误,某些服务器安装可能需要在(UBTO、CentOS、其他Linux服务器)/etc/sudoers文件中添加一个指令,以使指定用户不需要TTY。在/etc/sudoers.d/(使用Amazon命令行界面或PuTTY等工具)中创建文件可能比编辑/etc/sudoers更好。一些/etc/sudoers版本建议:

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

    当通过命令行编辑sudoers文件(作为root)时,应使用“visudo”命令打开该文件,因为它将解析该文件的语法错误/etc/sudoers.d/文件通常由root和chmoded拥有,并具有最低权限。默认的/etc/sudoers文件可能会被引用,因为它应该在安装时自动具有建议的chmod权限。e、 g:0440R--r-----

    :

    visudo-f/etc/sudoers.d/somefilename

    有用链接:

    • 堆栈溢出:
    WinSCP论坛:

    WinSCP文档:

    使用SCP协议,您可以将以下命令指定为自定义shell 在“高级站点设置”对话框的SCP/Shell页面上:

    sudo-s

    [……]

    请注意,由于WinSCP无法实现终端仿真,因此需要 关闭sudoers选项要求

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


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

    Hi Aivan。你可能在这方面运气更好。更详细地了解出了什么问题可能会有所帮助。WinSCP可以生成日志:我也有同样的问题,你找到了我没有得到的解决方案了吗?谢谢。有没有办法通过WinSCP以非root用户身份登录?有关WinSCP无密码
    sudo
    设置的详细说明,请参阅我认为
    su-
    需要密码,但不是
    sudo su-
    ?OP声明他正在使用公钥身份验证,因此不涉及密码。诀窍似乎是通过注释掉
    Defaults requirety,让sudoers在没有TTY设备的情况下感到快乐Defaults:username !requiretty