Answers:
您可以使用“ cat”命令来创建远程文件。
echo 'Some Text' | ssh user@remotehost -T "cat > /remotefile.txt"
该-T
禁用伪终端分配和阻止你获得的消息,
因为stdin不是终端,所以不会分配伪终端。
比其他答案短:
ssh user@remotehost "echo Some Text > /remotefile.txt"
echo
本地运行任意命令(或命令序列),而不仅仅是运行一个命令,那么您的答案将无济于事,而公认的答案就是做到这一点的方法。
ssh localhost "echo 'hi'; echo 'hello'; echo 'well, hello there!'
ssh localhost
?那只是使水浑浊,没有使水更清澈。(2)通过在修改后的示例中未显示重定向,您提出了一个问题,即您是否知道如何对命令进行分组并将所有输出发送到一个文件。…(续)
command (localhost)
>
file (remotehost)
也可以使用dd附加到文件中。如果无法在远程主机上进行输出重定向,则可能有点晦涩,但很有用。
cat ~/.ssh/id_rsa.pub | ssh user@remote.host 'dd of=.ssh/authorized_keys oflag=append conv=notrunc'
本示例将您的公共密钥附加到远程主机上的authorized_keys文件中。
如果必须多次使用,使用此代码可能会更容易。使用“ sshpass”工具,ssh不会在每次调用脚本时提示您输入密码。(除非您需要对其保密,否则最好不要使用它)
有关sshpass的更多信息:https ://stackoverflow.com/questions/12202587/automatically-enter-ssh-password-with-script
#!/bin/bash
SCRIPT="echo 'nameserver 8.8.8.8' > /etc/resolv.conf"
if [ "$#" -ne 1 ]; then
echo "Wrong number of arguments. usage: prog dest_machine"
else
sshpass -p "root" ssh -o StrictHostKeyChecking=no root@"$1" "${SCRIPT}"
fi
创建如下脚本:
# !/bin/bash
read -p "Enter target server IP : " server
echo "Enter root password for $server : " ; read -s password
yum install sshpass -y
sshpass -p "$password" ssh -o strictHostKeyChecking=no root@$server echo "your text goes here" >> /remotefile.txt
yum
充分理由就不会使用新命令的人。这个答案说明了如何但不是为什么。(目前暂时取消