如何使用SSH将多个命令发送到联网系统,以root用户身份登录并提供密码?
我知道你可以这样做:
ssh -l <username> target_host
Run Code Online (Sandbox Code Playgroud)
登录,但我不知道如何提供密码和命令,所以它都在一行中执行.我正在寻找一个带有许多单行命令的脚本到联网系统,可以从另一台计算机一次性运行.
ssh root @ host"command"
即:ssh root@192.168.1.1"cat/etc/fstab"
如果您尝试执行多个命令,我建议您查看某种形式的Expect脚本.我个人是Pexpect(Python)的粉丝.
使用密钥来绕过密码提示(来自man ssh):
文件〜/ .ssh/authorized_keys列出了允许登录的公钥.当用户登录时,ssh程序会告诉服务器它希望用于身份验证的密钥对.客户端证明它可以访问私钥,服务器检查相应的公钥是否有权接受该帐户.
用户通过运行ssh-keygen(1)创建他/她的密钥对.这将私钥存储在〜/ .ssh/identity(协议1),〜/ .ssh/id_dsa(协议2 DSA)或〜/ .ssh/id_rsa(协议2 RSA)中,并将公钥存储在〜/中.用户主目录中的ssh/identity.pub(协议1),〜/ .ssh/id_dsa.pub(协议2 DSA)或〜/ .ssh/id_rsa.pub(协议2 RSA).然后,用户应将公钥复制到远程计算机上他/她主目录中的〜/ .ssh/authorized_keys.authorized_keys文件对应于传统的〜/ .rhosts文件,每行有一个密钥,尽管这些行可能很长.在此之后,用户可以在不提供密码的情况下登录.