首页 > 解决方案 > 如何使用该机器上的现有用户在远程主机上运行命令

问题描述

我正在编写一个 shell 脚本,它需要根据它满足的条件在多个远程主机上运行命令。如何使用其密钥对在远程主机上运行命令并将这些命令的输出分配给主主机上的变量。

我尝试使用

sshpass -f keypair hostname 'command' | 'commands'

但是这个命令是在主机本身上执行的。

标签: bashshellssh-keys

解决方案


1) 将主机公钥 (~/.ssh/id_rsa.pub) 添加到远程用户认证密钥 (~/.ssh/authorized_keys)

您将公钥的内容附加到 authorized_keys

2)如果您没有此密钥,您可以生成它

 ssh-keygen -t rsa

3)之后你可以

ssh <REMOTE USER NAME>@RemoteHOST  <command>

例如

ssh mebada@123.44.2.12 ls

4)如果你有命令列表,你可以 scp shell 文件并从那里执行它(也没有密码),它将覆盖远程

scp /path/to/shell.file user@host:/path/to/remote
ssh user@host chmod u+x /path/to/remote/shell.file
ssh user@host /path/to/remote/shell.file

推荐阅读