SSH与远程登录/命令

Joh*_*0te 2 unix ssh

如何使用SSH将多个命令发送到联网系统,以root用户身份登录并提供密码?

我知道你可以这样做:

ssh -l <username> target_host
Run Code Online (Sandbox Code Playgroud)

登录,但我不知道如何提供密码和命令,所以它都在一行中执行.我正在寻找一个带有许多单行命令的脚本到联网系统,可以从另一台计算机一次性运行.

ini*_*ero 7

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文件,每行有一个密钥,尽管这些行可能很长.在此之后,用户可以在不提供密码的情况下登录.