这三行代码需要两次身份验证。我还没有在此服务器上设置无密码身份验证。实际上,这些代码行是将我的公钥复制到服务器并将其与现有文件连接。
如何使用仅需要身份验证一次的ssh
命令重新编写此流程?
scp ~/local.txt user@server.com:~/remote.txt
ssh -l user user@server.com
cat ~/remote.txt >> ~/otherRemote.txt
我研究了以下几种可能性:
sed
||
&&
我还考虑将local.txt
放置在可公开访问的位置,例如,使用公共保管箱链接。然后,如果cat
可以接受此作为输入,则scp
行不是必需的。但这也需要一个额外的步骤,并且在local.txt
无法公开的情况下不会起作用。
其他参考资料:
https://superuser.com/questions/400714/how-to-remotely-write-to-a-file-using-ssh
答案 0 :(得分:1)
您可以将内容重定向到遥控器,然后使用遥控器上的命令对其执行某些操作。像这样:
ssh user@server.com 'cat >> otherRemote.txt' < ~/local.txt
远程cat
命令将接收~/local.txt
的内容作为输入,通过输入重定向传递给ssh
命令。
顺便说一下,正如@Barmar指出的那样,在你的例子中同时指定-l user
和user@
的用户名也是多余的。