美文网首页
ssh远程执行

ssh远程执行

作者: CodingCode | 来源:发表于2021-09-22 23:57 被阅读0次

<localhost> ---- <jumphost> ---- <remotehost>

  1. ssh远程执行
$ ssh -i path/to/private.key <remoteuser>@<remotehost> "<CMD>"

<CMD>是任何可以在远程执行的命令,例如:

pwd
ls -l
cd ~/ && ls -ltr
cd ~/bin && ./setup.sh
  1. ssh通过跳转机器执行远程命令

这个意思是本地机器不能直接登录目标机器,必须通过中转机才能登录。

$ ssh -i path/to/private.key <jumpuser>@<jumphost> \
 "ssh -i path/to/private2.key <remoteuser>@<removehost> 'CMD'"

其实比较ssh的远程执行命令,也就是把在跳转机上的命令写成一个新的ssh远程执行命令即可。

  1. scp通过跳转机拷贝文件
$ cat <localfile> | \
  ssh  -i path/to/private.key <jumpuser>@<jumphost> \
       "cat | ssh -i path/to/private2.key <remoteuser>@<remotehost> 'cat > path/to/final/file'"

这个办法是传递文件内容,会把文件的读写属性丢失;另外一种办法还是使用scp可以保留文件读取属性。

scp -o 'StrictHostKeyChecking no' -i path/to/remotehost.key \
    -o "ProxyCommand ssh -o 'StrictHostKeyChecking no' path/to/jumphost.key -W %h:%p <jumpuser>@<jumphost> 2>/dev/null" \
    <localfile> <remoteuser>@<remotehost>:<path/to/remotefile>

注意这里的两个key: path/to/remotehost.key和path/to/jumphost.key都是本地的路径,不是jumphost上的路径。

相关文章

网友评论

      本文标题:ssh远程执行

      本文链接:https://www.haomeiwen.com/subject/gvkngltx.html