如何将字符串存储到远程文件中? 我需要在命令行中使用一些字符串覆盖远程机器上的文件内容(我有用户名,密码和ip,并且可以通过ssh访问)。 如何在linux上实现这一点?
答案 0 :(得分:1)
您可以使用ssh
在一次操作中修改文件:
ssh user@host "echo \"$local_variable\" > /path/to/file"
然而,这是有风险的 - 如果局部变量中有双引号字符怎么办?在Bash中,你可以通过引用值来解决它:
ssh user@host "echo $(printf %q "$local_variable") > /path/to/file"
执行此操作的更简单,更安全方式,并避免任何奇怪的转义问题,只需将内容保存到本地文件,然后使用scp
或{复制它{1}}。
答案 1 :(得分:1)
如果您有权访问ssh,则可以在远程计算机上执行任何命令:
ssh username@remotehost.com /usr/bin/mycommand
(例如,如果您愿意,可以将字符串回显到文件中)
如果您想要删除密码提示,可以使用SSH密钥身份验证:
ssh-keygen -t dsa
scp .ssh/id_rsa.pub username@remotehost.com:~/.ssh/authorized_keys2
一旦您的密钥在远程计算机上,您就可以使用没有密码的ssh。 (警告:使用非密码保护的密钥可能存在风险)