【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 地址。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示