我正在 AWS 上使用两个 ubuntu 实例(我使用 pem 密钥访问它们)。
我为这两个实例设置了 rsync,如果我使用默认用户 ubuntu@ipaddress,它就可以工作。但是,如果我尝试与其他用户一起使用 rsync(sudo su - jenkins例如,我正在输入,甚至sudo在 rsync 命令之前输入),则会出现以下错误。
Permission denied (publickey).
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.0]
Run Code Online (Sandbox Code Playgroud)
我采取的步骤:
我尝试在登录时创建一个 ssh 密钥(使用 ssh-keygen),jenkins并将其添加到authorized_keys文件中/home/ubuntu/.ssh/authorized_keys(我从中运行 rsync)甚至$JENKINS_HOME/.ssh/authorized_keys(我也尝试从那里运行 rsync)。
我什至尝试使用 pem 键来做同样的事情,但也没有用。
这就是我想要运行的
rsync -avuh --delete -e ssh jenkins@ipaddress:/var/lib/jenkins/* /var/lib/jenkins
这是密钥文件
rsync -avuh --delete -e 'ssh -i path/to/key.pem' jenkins@10.96.2.210:/var/lib/jenkins/* /var/lib/jenkins
PS:我不想与 ubuntu …
我有一个 .pem 文件,经过一些格式化后,它显示如下:
-----BEGIN
RSA
PRIVATE
KEY-----
MIIEogIBAAKCAQEAoK3D4mMIRnzPaYqHidgpBnDDzLlcYYd0GoB0pQGyGSHDW7KO3K+VeJP90GhE
ZTEWJLp2N5DR/KT+5Vg7cgdx/GCCrnlbW0McP/IvkYAuWCgbzoXH9eE+kDRtAmurBYCk7OTOwQ26
..........................LONG LONG LONG KEY................................
QRRLFsXua9spUh0yPd163IZStKZMhZBPJfMaqbi1WF+j21DdYyS0qpaZQRjFzRLvGuXeGLZG/COD
ip10XRJMMXY0m14bqOTcqKTya/5PTJIjDWC22+soIjLy0ZjWKo9n05Oal2t4q35kbos=
-----END
RSA
PRIVATE
KEY-----
Run Code Online (Sandbox Code Playgroud)
我显然需要像:
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAoK3D4mMIRnzPaYqHidgpBnDDzLlcYYd0GoB0pQGyGSHDW7KO3K+VeJP90GhE
ZTEWJLp2N5DR/KT+5Vg7cgdx/GCCrnlbW0McP/IvkYAuWCgbzoXH9eE+kDRtAmurBYCk7OTOwQ26
..........................LONG LONG LONG KEY................................
QRRLFsXua9spUh0yPd163IZStKZMhZBPJfMaqbi1WF+j21DdYyS0qpaZQRjFzRLvGuXeGLZG/COD
ip10XRJMMXY0m14bqOTcqKTya/5PTJIjDWC22+soIjLy0ZjWKo9n05Oal2t4q35kbos=
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
我如何使用awk或来做到这一点sed?
我在网上找到的所有教程都展示了如何针对整个文本或一种aaaabbbaaacccc我觉得令人困惑的模式来做这件事。
我试过这样的事情:
tr ' ' '\n' < test.pem | awk '/BEGIN\nRSA\nPRIVATE\n$/ { printf("%s\t", $0); next } 1' > test-format.pem
Run Code Online (Sandbox Code Playgroud)
但那失败了。
我不知道这是否重要,但我正在docker 容器中的 shell#!/bin/sh脚本中执行此操作python:3.5-alpine。
任何帮助是极大的赞赏。