【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 地址。

posted @ 2019-04-24 15:08  苏格拉底的落泪  阅读(171)  评论(0编辑  收藏  举报