`
chenjia66804610
  • 浏览: 153052 次
  • 来自: ...
社区版块
存档分类
最新评论

如何使得执行scp命令时不需要输入用户密码

阅读更多
在两台机器的两个用户之间建立安全的信任关系后,可实现执行scp命令时不需要输入用户密码。我根据该资料介绍的方法测试成功了。
    以下是在机器Client的root和机器Server的root之间建立安全信任关系的步骤:
    1. 在机器Client上root用户执行ssh-keygen命令,生成建立安全信任关系的证书。
        [root@Client root]# ssh-keygen -b 1024 -t rsa
        Generating public/private rsa key pair.
        Enter file in which to save the key (/root/.ssh/id_rsa):
        Enter passphrase (empty for no passphrase):            <-- 直接输入回车
        Enter same passphrase again:                           <-- 直接输入回车
        Your identification has been saved in /root/.ssh/id_rsa.
        Your public key has been saved in /root/.ssh/id_rsa.pub.
        The key fingerprint is:
        49:9c:8a:8f:bc:19:5e:8c:c0:10:d3:15:60:a3:32:1c root@Client
        [root@Client root]#
    注意:在程序提示输入passphrase时直接输入回车,表示无证书密码。
    上述命令将生成私钥证书id_rsa和公钥证书id_rsa.pub,存放在用户家目录的.ssh子目录中。
    2. 将公钥证书id_rsa.pub复制到机器Server的root家目录的.ssh子目录中,同时将文件名更换为authorized_keys。
        [root@Client root]# scp -p .ssh/id_rsa.pub root@192.168.3.206:/root/.ssh/authorized_keys
        root@192.168.3.206's password:          <-- 输入机器Server的root用户密码
        id_rsa.pub           100% |**************************|   218       00:00
        [root@Client root]#
    在执行上述命令时,两台机器的root用户之间还未建立安全信任关系,所以还需要输入机器Server的root用户密码。
    经过以上2步,就在机器Client的root和机器Server的root之间建立安全信任关系。下面我们看看效果:
        [root@Client root]# scp -p text root@192.168.3.206:/root
        text                 100% |**************************|    19       00:00
        [root@Client root]#
    成功了!真的不再需要输入密码了。
http://blog.csdn.net/cdtdx/archive/2008/08/01/2752208.aspx
rsync的备份指南:
需求:用rsync完成异地文件的同步
难点:如何建立异地信任关系

1、在A主机上(rsync服务器)上编译安装rsync,需要版本在2.4.3以上(http://rsync.samba.org),在/etc目录下建立rsyncd.conf文件,内容如下:
uid = nobody
gid = nobody
use chroot = no                         # 不使用chroot
max connections = 4                 # 最大连接数为4
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock         # 日志记录文件

[test]                                 # 这里是认证的模块名,在客户端需要指定
   path = /home/test                 # 需要同步的目录
   comment = test folder
   uid = root
   ignore errors                 # 可以忽略一些无关的IO错误
   read only = yes                 # 只读
   list = no                         # 不允许列文件
   auth users = rsynctest        # 认证的用户名,如果没有这行,则表明是匿名
   secrets file = /etc/test.scrt         # 认证用户密码文件

2、在/etc下建立test.scrt文件,输入:
用户名:密码
例:rsynctest:testrsync
将文件属性修改为600(千万注意)

3、启动rsync服务:rsync --daemon (rsync运行在tcp 873端口,可以通过netstat -an|grep LISTEN察看)。

4、在B主机上(rsync客户机)上建立/etc/test文件,内容为A主机的密码,例:
testsync

5、用crontab建立脚本,例:0 21 * * 1-5 rsync -vzrtp --progress --delete --password-file=/etc/test rsynctest@192.168.1.10::test /home/rsynctest

rsync中的参数:v是verbose,z是压缩,r是recursive,tp都是保持文件原有属性如属主、时间
的参数。--progress是指显示出详细的进度情况,--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。--password-file=/etc/test来指定密码文件,这样就可以在脚本中使
用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读(600)。

rsynctest@192.168.1.10中,rsynctest是指定密码文件中的用户名,192.168.1.10是A主机的IP地址::test是指模块名[test],也就是在/etc/rsyncd.conf中自定义的名称。最后的/home/rsynctest是备份到本地的目录名。
(也可以用-e ssh的参数建立起加密的连接,然后和scp中信任主机的办法一样如法炮制)
(在上面实例中的rsynctest并不是真实的用户,可以根据自己需要文本定义,这也是使用rsync的一大好处)

rsync的特点:
特性如下:

1、可以镜像保存整个目录树和文件系统。
2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。
3、无须特殊权限即可安装。
4、优化的流程,文件传输效率高。
5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
6、支持匿名传输。

http://www.lslnet.com/linux/dosc1/30/linux-238181.htm
分享到:
评论

相关推荐

    python执行scp命令拷贝文件及文件夹到远程主机的目录方法

    Python执行SCP命令是一种在编程中实现自动化文件传输到远程服务器的常见方法,特别是在需要脚本化或批量处理任务时。SCP(Secure Copy)是基于SSH协议的安全文件传输工具,它允许用户通过加密连接将文件从本地复制到...

    Jsch批量执行多条命令,包含切换用户输入密码

    参考expect4j的交互式操作方式控制输入输出流实现批量执行多条shell命令同时支持切换用户输入密码提权执行命令输入密码等操作 有完整的测试用例,便于理解 模板化执行命令示例 [$]send[su - root] [Password:]...

    通过秘钥实现scp不输入密码传送文件

    标题所述的"通过秘钥实现scp不输入密码传送文件"是一种使用SSH密钥对进行身份验证的方法,以避免在执行SCP(Secure Copy)命令时反复输入密码。SCP是基于SSH协议的安全文件传输工具,通常用于在不同的主机之间复制...

    Linux批量scp命令执行工具 可批量对多个Linux主机执行传输文件命令 方便省力 适合统一化管理Linux服务器

    在日常运维工作中,经常需要在多台远程Linux主机之间传输文件,这时,手动执行scp命令会显得效率低下且容易出错。为了解决这个问题,就有了“Linux批量scp命令执行工具”,它能够帮助管理员批量地对多个Linux主机...

    使用ssh、scp不需要密码

    生成过程中需要输入密码,可以直接回车不输入密码。 密钥对的使用 生成的密钥对可以用于 ssh 和 scp 登陆和文件传输。如果将公钥复制到要访问的机器上,并保存到 ~/.ssh/authorized_keys 文件中,那么可以不需要...

    不需要远程传输文件Linux如何关闭scp和sftp命令.docx

    scp命令是用于在两台主机之间传输文件的命令,通常用scp命令通过ssh获取对方Linux主机文件时,需要输入密码确认。方法类似于ftp命令,但是scp命令更加安全。 禁止scp命令 要禁止scp命令,需要删除openssh-clients...

    解决linux scp无需密码问题

    如果不设置密码,后续使用时将无需输入密码,从而实现无密码传输。 2. **备份公钥文件**: - 将生成的公钥文件`id_rsa.pub`进行备份,例如重命名为`id_rsa.pub.A`。 3. **在远程服务器上生成SSH密钥对**: - ...

    Linux攻略 让SSH不再输入密码的实用技巧

    同样的,使用`scp`或`sftp`命令进行文件传输时,也不需要再输入密码。这种方式不仅提高了工作效率,也增加了自动化任务的安全性,因为即使有人获取到了你的公钥,他们也无法没有私钥的情况下进行登录。 总的来说,...

    linux scp传输不用密码

    通常情况下,我们通过输入密码来进行身份验证,从而实现文件的传输。但在某些应用场景下,为了提高效率或自动化操作的需求,我们需要实现SCP传输时无需密码的操作。这主要依赖于公钥认证机制来实现。 #### 公钥认证...

    bash脚本中将密码传递给ssh/scp命令方法详解

    然而,这些命令通常需要用户提供密码,这在脚本化环境中是不理想的,因为手动输入密码是无法实现的。本文将详细介绍如何在bash脚本中处理这个问题。 首先,我们可以使用`sshpass`工具,这是一个允许在不交互的情况...

    SSH中SCP命令的使用

    同样地,当需要向远程服务器上传文件但服务器未启用FTP服务时,可以通过SCP命令完成。例如,将本地文件`backup.tar.gz`上传至远程服务器`192.168.1.21`的`/tmp/`目录: ``` scp backup.tar.gz root@192.168.1.21...

    Linux下SSH及SCP命令简单使用

    进行远程连接的步骤非常简单,只需要在终端中输入命令“ssh 用户名@远程主机地址”,然后输入该用户的登录密码即可进入远程终端模式。 例如,假设您想远程连接到IP地址为***.***.**.**的远程主机,您可以在Linux...

    python Pexpect 实现输密码 scp 拷贝的方法

    本想直接在bash文件中使用Pexpect 来实现自动输入密码,并scp拷贝文件,但是权限的限制导致不能安装使用Pexpect 。 最后考虑使用python实现。 环境: python2.7 centos from pexpect import * import os cwd = os....

    优化scp传输文件到多个主机

    4. **权限与身份验证**:由于scp命令基于SSH,因此需要确保在所有目标主机上都有正确的公钥认证设置,以避免每次传输时输入密码。 5. **错误处理**:在脚本中添加错误处理机制,如捕获scp命令的退出状态码,以便在...

    Linux服务器scp无密码传输文件操作说明

    为了减少因服务器用户密码定期更改带来的不便以及避免在自动化脚本中输入密码,可以通过设置SSH密钥对实现无密码传输文件。 ##### 准备工作 1. **确认远程服务器22端口开放**:使用`netstat -ntlp | grep ssh`检查...

    SSH-SCP使用方法

    在进行自动化部署或备份等场景时,频繁的手动输入密码不仅繁琐,也降低了效率。因此,学会如何配置SSH密钥对以实现免密码登录是非常重要的。此外,了解SCP命令的高级用法可以帮助更好地管理和维护Linux环境下的文件...

    在Linux下用scp复制文件无需输入密码的技巧

    然而,默认情况下,每次使用SCP命令传输文件时都需要输入密码。这对于频繁进行文件传输的操作来说既不便捷也不高效。因此,本文将详细介绍如何在Linux系统中配置免密SCP传输。 #### 二、准备工作 为了实现免密SCP...

    sh_scp.zip

    `expect`是一个强大的自动化交互式程序的工具,它可以模拟用户输入,使得脚本能够自动执行需要交互的任务。 首先,让我们了解`SCP`命令的基本用法。`SCP`命令的格式大致如下: ```bash scp [选项] 源 目标 ``` ...

    linux拷贝命令之高级拷贝scp命令详解

    与`rcp`不同,当需要身份验证时,`scp`会提示用户输入密码或密钥,增强了安全性。 ### 总结 `scp`命令是Linux系统中进行安全文件传输的重要工具,其核心优势在于提供了一种安全的加密方式,使得数据在互联网上传输...

Global site tag (gtag.js) - Google Analytics