AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 61915
Accepted
rjmunro
rjmunro
Asked: 2009-09-04 02:58:01 +0800 CST2009-09-04 02:58:01 +0800 CST 2009-09-04 02:58:01 +0800 CST

如果公钥身份验证失败,如何使 ssh 失败而不是提示输入密码?

  • 772

我有一个脚本,它使用公钥身份验证对几台服务器进行 SSH 连接。由于配置问题,其中一台服务器已停止让脚本登录,这意味着脚本卡在“密码:”提示中,显然无法回答,因此它甚至不尝试其余服务器在列表中。

如果密钥认证失败,有没有办法告诉 ssh 客户端不要提示输入密码,而是只报告连接错误并让我的脚本继续?

authentication ssh public-key
  • 5 5 个回答
  • 117181 Views

5 个回答

  • Voted
  1. Best Answer
    Kjetil Joergensen
    2009-09-04T04:09:22+08:002009-09-04T04:09:22+08:00

    对于 OpenSSH,有 BatchMode,它除了禁用密码提示之外,还应该禁用查询密钥的密码短语。

    批处理模式

    如果设置为“yes”,密码短语/密码查询将被禁用。此选项在没有用户提供密码的脚本和其他批处理作业中很有用。论据必须是“是”或“否”。默认值为“否”。

    示例用法:

    ssh -oBatchMode=yes -l <user> <host> <dostuff>
    
    • 171
  2. cas
    2009-09-04T03:19:43+08:002009-09-04T03:19:43+08:00
    • 要禁用当前 ssh 连接尝试的密码身份验证,请在命令行上传递此选项:

      -o PasswordAuthentication=no
      
    • 要禁用所有未来连接到任何主机的密码身份验证,请将以下内容添加到您的~/.ssh/config:

      PasswordAuthentication no
      
    • 要仅对某些主机禁用它,请将以下内容添加到 ~/.ssh/config:

      Host host1 host2 host3...
          PasswordAuthentication no
      

    上述选项适用于传出ssh 连接,即您尝试连接到远程 ssh 服务器的位置。

    要在 ssh 服务器上禁用密码验证(即适用于所有传入的ssh 连接),请添加并重新PasswordAuthentication no启动./etc/ssh/sshd_configsshd

    • 43
  3. sybreon
    2009-09-04T03:54:03+08:002009-09-04T03:54:03+08:00

    如果您使用的是 dropbear,只需添加“ -s”选项即可禁用密码验证。

    • 12
  4. Amandasaurus
    2009-09-04T03:39:34+08:002009-09-04T03:39:34+08:00

    在命令行(或~/.ssh/config)上,您可以设置PreferredAuthentications.

    PreferredAuthentications=publickey
    
    • 9
  5. Sandip S
    2020-06-19T07:55:35+08:002020-06-19T07:55:35+08:00

    这是一个示例 sftp bash 脚本片段。我正在使用“-o BatchMode=Yes”来禁用密码提示,以防万一失败。并检查frp返回码,检查ftp连接是否失败。

    sftp -o "IdentityFile=<YOUR_IDENTTIY_FILE>"  -o "BatchMode=Yes" [email protected] <<EOF
    
    cd /$remotepath
    mget *.csv $localpath/download
    
    quit
    EOF
    exit_code=$?
    if [[ $exit_code != 0 ]]; then
       echo "sftp error, failed to connect to ftp server" >&2
       exit 1
    fi
    
    • 2

相关问题

  • Mac OS X:如何在无头机器上运行 GUI 应用程序

  • Windows SSH 客户端

  • 在 Windows Server 2003 上通过 SSH 启动和停止 Mongrel 服务

  • 隧道 Xbox 网络流量 [关闭]

  • 为什么使用authorized_keys通过ssh自动登录不起作用?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve