【发布时间】:2017-05-07 19:40:33
【问题描述】:
这三行代码需要两次身份验证。我尚未在此服务器上设置无密码身份验证。实际上,这几行代码就是将我的公钥复制到服务器,并与现有文件连接起来。
我怎样才能用一个只需要验证一次的ssh 命令重写这个过程?
scp ~/local.txt user@server.com:~/remote.txt
ssh -l user user@server.com
cat ~/remote.txt >> ~/otherRemote.txt
我研究了以下可能性:
- 命令
sed - 操作员
|| - 操作员
&& - 共享会话:Can I use an existing SSH connection and execute SCP over that tunnel without re-authenticating?
我还考虑将local.txt 放置在可公开访问的位置,例如,使用公共保管箱链接。那么如果cat 可以接受这个作为输入,那么scp 行就没有必要了。但这也需要额外的步骤,并且在 local.txt 无法公开的情况下不起作用。
其他参考资料:
https://superuser.com/questions/400714/how-to-remotely-write-to-a-file-using-ssh
【问题讨论】:
-
你试过
ssh-copy-id命令吗?它会自动为您执行此操作。 -
我需要安装它。您认为与以下解决方案相比有什么优势吗?它会在 bash 脚本中更轻松地工作吗? stackoverflow.com/questions/25655450/…
-
ssh-copy-id做了一些额外的事情,比如在必要时创建~/.ssh,并确保权限正确。但除此之外,它基本上等同于下面的答案。