답변:
"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
정당한 이유없이 같은 새로운 명령을 사용하지 않는 누군가로부터 다운 보트를 본다 . 이 답변은 그 이유를 보여줍니다. (