【linux命令】sshpass命令使用
sshpass命令使用
直接远程连接某主机
sshpass -p {密码} ssh {用户名}@{主机IP}
远程连接指定ssh的端口
sshpass -p {密码} ssh -p ${端口} {用户名}@{主机IP}
从密码文件读取文件内容作为密码去远程连接主机
sshpass -f ${密码文本文件} ssh {用户名}@{主机IP}
从远程主机上拉取文件到本地
sshpass -p {密码} scp {用户名}@{主机IP}:${远程主机目录} ${本地主机目录}
将主机目录文件拷贝至远程主机目录
sshpass -p {密码} scp ${本地主机目录} {用户名}@{主机IP}:${远程主机目录}
远程连接主机并执行命令
sshpass -p {密码} ssh -o StrictHostKeyChecking=no {用户名}@{主机IP} 'rm -rf /tmp/test' -o StrictHostKeyChecking=no :忽略密码提示
sshpass -p '123123' ssh-copy-id -o StrictHostKeyChecking=no root@node03
这条命令的作用是将本地的 SSH 公钥复制到远程主机 node03
上的 root
用户中,从而实现免密码 SSH 登录。让我们逐一解释各个参数的含义:
-
sshpass -p '123123'
:sshpass
是一个用于非交互式地传递密码给 SSH 的工具。-p '123123'
指定了 SSH 登录时的密码为123123
。 -
ssh-copy-id
: 这是用于将本地的公钥添加到远程主机的~/.ssh/authorized_keys
文件中的工具,从而允许本地机通过 SSH 免密码登录远程主机。 -
-o StrictHostKeyChecking=no
: 这是一个 SSH 选项,用于在首次连接到远程主机时自动接受并添加远程主机的 SSH 密钥到已知主机列表中。StrictHostKeyChecking=no
表示不提示用户确认新主机的密钥,而是自动接受。这在自动化脚本中很常用。 -
root@node03
: 这是指远程主机的用户和主机名。root
是用户名,node03
是远程主机的主机名或 IP 地址。