ssh scp sshpass

ssh命令用于远程连接主机

ssh username@hostname

更多用法参考:
ssh常用用法

scp 命令是用于通过 SSH 协议安全地将文件复制到远程系统和从远程系统复制文件到本地的命令

比如:

scp /data/log/a.txt [email protected]:/data/log

该命令就就将本地的a.txt传输到192.168.1.100的/data/log目录下

sshpass命令用于非交互的 ssh 密码验证

上面的scp命令有个问题就是需要手动输入命令,那么此时就可以用sshpass命令来将密码带进去:

sshpass -p 123456 scp /data/log/a.txt [email protected]:/data/log

但是如果192.168.1.100里面没有/data/log这个目录时,该命令就会报错,此时可以通过以下命令在远端主机创建你需要的目录:

sshpass -p 123456 ssh [email protected] mkdir -p /data/log

如果需要同时在远程主机上执行多条指令可以使用下面的命令:

sshpass -p <password> ssh -T user@host 'command1; command2; command3'

-T选项用于禁用伪终端分配

另一种方法是将命令写入一个脚本文件,然后使用ssh命令执行脚本文件。以下是一个示例:

echo -e 'command1\command2\command3' > script.sh
sshpass -p <password> ssh -T user@host 'bash -s' < script.sh

在上面的示例中,echo命令将多个命令写入一个脚本文件script.sh,然后通过ssh命令将脚本文件传递给远程主机并执行。

请注意,使用sshpass在脚本中传递密码通常被认为是不安全的。最好的方法是设置SSH密钥对,并使用公钥进行身份验证

你可能感兴趣的:(ssh,网络,运维)