linuxssh自动执行命令

不及物动词 其他 101

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    可以通过Linux的SSH服务自动执行命令的方法有多种,以下是其中几种常用的方式:

    1. 使用ssh命令的-i选项指定私钥文件,并运行要在远程机器上执行的命令。例如:`ssh -i /path/to/private_key username@hostname command`。其中,/path/to/private_key是SSH私钥文件的路径,username是远程机器的用户名,hostname是远程机器的主机名或IP地址,command是要执行的命令。这种方式适用于需要在命令行执行一次性命令的情况。

    2. 编写一个包含要执行的命令的shell脚本文件,然后使用ssh命令执行该脚本。例如:`ssh username@hostname ‘/path/to/script.sh’`。其中,/path/to/script.sh是包含要执行的命令的脚本文件的路径。这种方式适用于需要执行多个命令或需要定期执行的情况。

    3. 使用sshpass工具,在命令行中指定密码,然后运行要在远程机器上执行的命令。例如:`sshpass -p ‘password’ ssh username@hostname command`。其中,password是远程机器的密码。需要注意的是,使用密码登录远程机器存在一定的安全风险,建议使用密钥认证方式。

    4. 使用expect工具,编写一个expect脚本来实现自动执行命令。expect是一个自动交互式工具,可以模拟用户输入,可以使用这个工具来自动输入密码和执行命令。例如:

    “`bash
    #!/usr/bin/expect
    spawn ssh username@hostname
    expect “password:”
    send “password\r”
    expect “$”
    send “command\r”
    expect “$”
    send “exit\r”
    expect eof
    “`

    其中,username是远程机器的用户名,hostname是远程机器的主机名或IP地址,password是远程机器的密码,command是要执行的命令。这种方式适用于需要进行复杂交互的情况。

    以上是几种常用的方法,可以根据具体需求选择合适的方式来实现自动执行命令。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux环境下,可以使用ssh命令来远程登录到另一台Linux服务器,并执行指定的命令。要实现ssh自动执行命令,可以通过以下几种方法来实现:

    1. 使用ssh的-i参数指定私钥文件:在使用ssh登录时,可以使用-i参数来指定私钥文件进行身份验证。首先,我们需要在本地生成一个SSH key对,并将公钥添加到目标服务器的authorized_keys文件中。然后,使用以下命令进行ssh登录并执行命令:

    “`
    ssh -i @
    “`

    其中,是私钥文件的路径,是用户名,是目标服务器的主机名或IP地址,是要执行的命令。

    2. 使用sshpass命令:sshpass是一个命令行工具,可以自动化输入密码。首先,我们需要在本地安装sshpass工具。然后,使用以下命令进行ssh登录并执行命令:

    “`
    sshpass -p ssh @
    “`

    其中,是登录目标服务器所需的密码,是用户名,是目标服务器的主机名或IP地址,是要执行的命令。

    3. 使用expect命令:expect是一个脚本工具,可以自动化交互式的命令行会话。首先,我们需要在本地安装expect工具。然后,创建一个expect脚本文件,内容如下:

    “`expect
    #!/usr/bin/expect
    spawn ssh @
    expect “assword:”
    send “\r”
    interact
    “`

    替换为用户名,替换为目标服务器的主机名或IP地址,替换为要执行的命令,替换为登录目标服务器所需的密码。保存脚本文件,并通过以下命令运行:

    “`
    expect
    “`

    4. 使用SSH配置文件:可以通过编辑SSH配置文件来自动执行命令。首先,在客户端创建或编辑~/.ssh/config文件,在其中添加以下内容:

    “`
    Host
    Hostname

    User
    IdentityFile RequestTTY yes
    RemoteCommand
    “`

    替换为目标服务器的主机名或IP地址,替换为用户名,替换为私钥文件的路径,替换为要执行的命令。保存配置文件后,通过以下命令进行ssh登录并执行命令:

    “`
    ssh
    “`

    以上是四种在Linux下实现自动执行命令的方法。根据具体情况选择合适的方法来自动化执行需要的操作。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux系统上,我们可以使用SSH(Secure Shell)协议来远程登录到其他计算机,并执行命令。SSH是一种加密的网络协议,可以在不安全的网络中提供安全的远程登录和文件传输。

    要在Linux上自动执行命令,我们可以使用SSH的批处理功能,通常结合使用公钥身份认证,以实现无需手动输入密码的自动登录。

    下面是在Linux上自动执行命令的步骤:

    1. 生成SSH密钥对:
    首先,我们需要在进行自动登录时使用的计算机上生成SSH密钥对。可以使用以下命令生成密钥对:

    “`
    ssh-keygen -t rsa
    “`

    默认情况下,生成的密钥将保存在用户目录的.ssh文件夹下。生成时可以选择密码和存储位置。

    2. 将公钥添加到目标服务器:
    接下来,我们需要将生成的公钥文件添加到目标服务器上,以便进行身份认证。可以使用以下命令将公钥添加到目标服务器的授权文件中:

    “`
    ssh-copy-id user@remote_host
    “`

    这将将公钥添加到目标服务器的.ssh/authorized_keys文件中。

    3. 测试自动登录:
    完成上述步骤后,我们可以测试自动登录是否成功。可以使用以下命令尝试通过SSH连接到目标服务器:

    “`
    ssh user@remote_host
    “`

    如果一切正常,应该能够无需输入密码直接登录到目标服务器。

    4. 编写批处理脚本:
    接下来,我们可以编写一个批处理脚本,其中包含要自动执行的命令。可以使用文本编辑器创建一个名为script.sh的新文件,并输入要执行的命令,如:

    “`
    #!/bin/bash
    command1
    command2
    “`

    保存并退出文件。

    5. 自动执行命令:
    最后,我们可以使用SSH命令执行批处理脚本。可以使用以下命令执行脚本:

    “`
    ssh user@remote_host ‘bash -s’ < script.sh ``` 这将通过SSH连接到目标服务器,并在远程服务器上运行script.sh脚本。通过以上步骤,我们可以实现在Linux上自动执行命令。我们只需要将要执行的命令写入批处理脚本,并使用SSH连接到目标服务器来执行脚本。这样可以提高工作效率,尤其是当需要在多个远程服务器上执行相同的操作时。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部