如何在批处理模式下执行 SSH 和 SCP(仅在启用无密码登录时)

举报
Tiamo_T 发表于 2022/01/13 16:12:07 2022/01/13
【摘要】 当您启用无密码登录时,您可能正在使用 SSH 在远程机器上以批处理模式执行命令,或者使用 SCP 从/向远程机器复制文件。 如果无密码登录存在一些问题,您的批处理程序可能会陷入循环或超时。 在本文中,让我们了解一下如何在不等待密码的情况下指示 ssh/scp 进行操作。

当您启用无密码登录时,您可能正在使用 SSH 在远程机器上以批处理模式执行命令,或者使用 SCP 从/向远程机器复制文件。

如果无密码登录存在一些问题,您的批处理程序可能会陷入循环或超时。

在本文中,让我们了解一下如何在不等待密码的情况下指示 ssh/scp 进行操作。

在尝试之前,请确保在本地主机和远程主机之间设置了无密码登录

1. ssh -o “BatchMode yes” 使用示例

如果您启用了无密码登录,以下示例将登录到远程主机并执行 who 命令而不询问密码。

local-host# ssh ramesh@remote-host who

如果未启用无密码登录,则会在远程主机上提示输入密码,如下图所示。

local-host# ssh -o "BatchMode yes" ramesh@remote-host who
..
[Note: This will display the output of remote-host's who command]

如果您使用 ssh -o “BatchMode yes”,那么只有在启用无密码登录时才会执行 ssh,否则将返回错误并继续。

local-host# ssh -o "BatchMode yes" ramesh@remote-host Command

使用 SSH 执行批处理模式命令——成功案例

local-host# ssh -o "BatchMode yes" ramesh@remote-host who
..
[Note: This will display the output of remote-host's who command]

使用 SSH 执行批处理模式命令 - 失败案例

local-host# ssh -o "BatchMode yes" ramesh@remote-host who
Permission denied (publickey,password).

注意:如果你没有使用 -o “BatchMode yes”,上面的命令会询问我在远程主机上的帐户密码。这是使用 BatchMode yes 选项的主要区别。


2. scp -B 选项使用示例

如果你使用 scp -B 选项,它只会在启用无密码登录的情况下执行 scp,否则它将立即退出而不等待密码。

$ scp -B file root@IP:PATH

批处理模式下的SCP——成功案例

local-host# scp -B /etc/yp.conf ramesh@remote-host:/tmp
yp.conf            100%   84     0.1KB/s   00:00

批处理模式下的 SCP — 失败案例

在此示例中,如果 scp 无需身份验证即可执行,则该命令将执行,否则它将退出,如下所示。

local-host# scp -B /etc/yp.conf ramesh@remote-host:/tmp
Permission denied (publickey,password).
lost connection
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。