scp命令

本贴最后更新于 2976 天前,其中的信息可能已经时移世异

我的需求是将 linux 上的文件,scp 到 win 机器上。

我用的方法是 java 调用 shell。将 linux 的公钥放到 win 路径下。shell 中命令如下:

scp -o StrictHostKeyChecking=no /home/1.txt Administrator@172.1.1.1:/win/tmp/

如果公钥放好了,用户名 @host 都正确,就属于免密码登陆了。这是正常情况下。

现在问题是,如果用户名 @host(Administrator@172.1.1.1)这两个地方写错了一个。那在 linux 下就会等待让输入密码。

我的程序是读取文件,文件很多的,不能让停在这里。也没有人能在这等着输入密码。

怎么解决这个问题呢???

我之前想了一个方法,可能不太靠谱。比如用个时间限制。但是用在哪里呢???

  • scp
    5 引用 • 14 回帖
  • 公钥
    4 引用 • 15 回帖
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    921 引用 • 934 回帖 • 1 关注
  • 求助
    49 引用 • 401 回帖 • 1 关注

相关帖子

14 回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250 1

    应该有个参数可以设置是否输入密码的话,我猜想。

  • 714593351 1

    没用过,帮顶饺子!!

  • yangyujiao
    作者

    @88250 命令可以这样写

    sshpass -p Aa123456 scp  1.txt Administrator@172.1.1.11:/home/Administrator/
    

    这个 Aa123456(密码)是 win 的登录密码。就是不想用这种密码的形式。因为 Administrator@172.1.1.11 这个位置是动态的参数。不想密码也动态传,才想到直接用免密码的方式。

    你说的不输入密码,是公钥也不用。Aa123456 也不用?

  • 88250

    @yangyujiao 我觉得可能有个参数可以让在口令不对的情况下直接退出命令,而不是等待 stdin 输入。

  • yangyujiao
    作者

    @88250 明白了,我查一下。

  • 88250

    @yangyujiao -o 参数后面加个 KbdInteractiveAuthentication=no 试试

  • 传文件请用 rsync

  • yangyujiao
    作者

    @88250 还是那样,,,呜呜呜。。。

  • yangyujiao
    作者

    @An cygwin 我们就用了这个。。。

    在 win 模拟出 ssh。然后用 scp 命令。

  • @yangyujiao
    无论是在效率、多文件处理、可靠性、还是安全性上,rsync 都比 scp 好了不止一个数量级。
    另外,我记得 rsync 有 win 客户端

  • yangyujiao
    作者

    @An cygwin 这个就是 win 的客户端呀。。。但是不用 scp 命令。怎么自动传文件?

  • yangyujiao
    作者

    @An 刚查了 rsync 这个命令,也是需要用密码的,治标不治本。

  • @yangyujiao --password-file=

  • yangyujiao
    作者

    找到的目前理想的解决方案,用如下命令:

    ####scp -o PasswordAuthentication=no -o ConnectTimeout=1 -o ConnectionAttempts=1 -o StrictHostKeyChecking=no 1.txt Administrator@172.1.1.1:/win/tmp

    PasswordAuthentication 是否需要密码验证

    ConnectTimeout 连接超过时间

    ConnectionAttempts 连接重试次数

请输入回帖内容 ...

推荐标签 标签

  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 288 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖 • 1 关注
  • Hprose

    Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

    9 引用 • 17 回帖 • 610 关注
  • 创业

    你比 99% 的人都优秀么?

    83 引用 • 1398 回帖
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    25 引用 • 191 回帖 • 24 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3169 引用 • 8208 回帖
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    34 引用 • 37 回帖 • 506 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    332 引用 • 619 回帖
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    76 引用 • 429 回帖
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    536 引用 • 672 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 711 关注
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 11 关注
  • OnlyOffice
    4 引用 • 16 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    69 引用 • 190 回帖 • 483 关注
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    379 引用 • 1221 回帖 • 589 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 455 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖 • 2 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 247 回帖 • 148 关注
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 192 关注
  • 音乐

    你听到信仰的声音了么?

    59 引用 • 510 回帖
  • 反馈

    Communication channel for makers and users.

    124 引用 • 907 回帖 • 209 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    207 引用 • 2031 回帖
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 18 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    86 引用 • 896 回帖
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 31 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    106 引用 • 152 回帖 • 1 关注