ssh端口更改后rsync的用法

有运维或运维开发方面的需求,可以联系博主QQ 452336092或Email:admin#centos.bz(收费)

rsync有两种常用的认证方式,一种为rsync-daemon方式,另外一种则是ssh。

在一些场合,使用rsync-daemon方式会比较缺乏灵活性,ssh方式则成为首选。但是今天实际操作的时候发现当远端服务器的ssh默认端口被修改后,rsync时找不到一个合适的方法来输入对方ssh服务端口号。

在查看官方文档后,找到一种方法,即使用-e参数。

-e参数的作用是可以使用户自由选择欲使用的shell程序来连接远端服务器,当然也可以设置成使用默认的ssh来连接,但是这样我们就可以加入ssh的参数了。

具体语句写法如下:

  1. rsync -e 'ssh -p 1234' username@hostname:SourceFile DestFile

其他参数完全按照rsync的规定格式加入即可。

上面语句中比较新鲜的地方就是使用了单引号,目的是为了使引号内的参数为引号内的命令所用。没有引号的话系统就会识别-p是给rsync的一个参数了。我的描述可能比较烂,详情可以参考rsync官方描述:

Command-line arguments are permitted in COMMAND provided that COMMAND is presented to rsync as a single argument. You must use spaces (not tabs or other whitespace) to separate the command and args from each other, and you can use single- and/or double-quotes to preserve spaces in an argument (but not backslashes). Note that doubling a single-quote inside a single-quoted string gives you a single-quote; likewise for double-quotes (though you need to pay attention to which quotes your shell is parsing and which quotes rsync is parsing).

转自:http://yynotes.net/rsync-with-ssh-without-default-port/

转载请保留原文链接:Linux运维日志 » ssh端口更改后rsync的用法

打赏

如果此文对你有所帮助,请随意打赏鼓励作者^_^

评论 5

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. Lanyd请教一下博主,我用rsync -avzP test@host::data /cygdrive/f/rsync_data --password-file=/cygdrive/f/test/rsync.password -e ssh 输入完SSH连接密码后,提示下面这个错误: Permission denied (publickey,password,keyboard-interactive). rsync: did not see server greeting rsync error: error starting client-server protocol (code 5) at main.c(1635) [Receiver=3.1.1] 难道这里提示的是不能使用交互式输入密码来连接SSH?只能输入公钥吗? Permission denied (publickey,password,keyboard-interactive).回复
    • 朱 茂海可能是/cygdrive/f/test/rsync.password 没权限吧回复
      • Lanyd晕,我明白了,是我在rsync.password中把用户名也写上去了 :shock: 还以为跟在server端一样需要在前面加上用户名和冒号回复
  2. Lanyd再请教一下博主,我在使用公钥登陆时碰到了一个问题,我把在客户端生成的id_rsa.pub的内容复制到服务器上/home/.ssh中的authorized_keys后,在客户端用ssh -i /cygdrive/e/sshd_home/.ssh/id_rsa Lanyd@host.com后还是提示让我输入密码。如果我在服务器端把PasswordAuthentication设为no,则直接提示Permission denied (publickey,keyboard-interactive). 在服务器端我已经设置了RSAAuthentication no和PubkeyAuthentication yes以及AuthorizedKeysFile .ssh/authorized_keys 到底哪里还有问题呢?回复
  3. Lanyd另外,有一些概念性的问题我都还搞不清楚,看了网上很多资料也没有看到讲解得比较清楚的,请博主多指点指点。 PUB公钥验证方式登录和RSA密钥登录是一样的吗?如果是不同那它们有什么区别?opensshd配置文件中的HostKey、RSAAuthentication、PubkeyAuthentication、AuthorizedKeysFile分别是什么意思?如果我使用DSA密钥,是否就可以只需开启PubkeyAuthentication而不用开启RSAAuthentication?HostKey我看到有好几个可能值(/etc/ssh/ssh_host_key或ssh_host_dsa_key或ssh_host_rsa_key),这个对使用公钥登陆有什么影响?HostKey和AuthorizedKeysFile有什么不同?回复