ssh命令用于远程连接主机
ssh username@hostname
更多用法参考:
ssh常用用法
scp 命令是用于通过 SSH 协议安全地将文件复制到远程系统和从远程系统复制文件到本地的命令
比如:
scp /data/log/a.txt root@192.168.1.100:/data/log
该命令就就将本地的a.txt传输到192.168.1.100的/data/log目录下
sshpass命令用于非交互的 ssh 密码验证
上面的scp命令有个问题就是需要手动输入命令,那么此时就可以用sshpass命令来将密码带进去:
sshpass -p 123456 scp /data/log/a.txt root@192.168.1.100:/data/log
但是如果192.168.1.100里面没有/data/log这个目录时,该命令就会报错,此时可以通过以下命令在远端主机创建你需要的目录:
sshpass -p 123456 ssh root@192.168.1.100 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密钥对,并使用公钥进行身份验证