如何在批处理模式下执行 SSH 和 SCP(仅在启用无密码登录时)
【摘要】 当您启用无密码登录时,您可能正在使用 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)