ssh远程执行命令自动输入密码方式

简介: ssh远程执行命令自动输入密码方式

echo 方式

# 使用 echo “密码” | (管道符)
echo "密码" | sudo 命令
echo "123456" | sudo rm -rf /*

重定向 方式

# 需要有参数来指定密码输入方式,如ftp就有-i参数来指定使用标准输入来输入密码
# shell用重定向作为标准输入的用法是:cmd<<delimiter ,shell 会将分界符delimiter之后直到下一个同样的分界符之前的内容作为输入
# 使用场景:不仅仅输入一个密码,还需要输入用户名
ftp -i -n 192.168.21.46 <<EOF
user 用户名 密码
EOF

expect 方式

# 安装
yum -y install expect
#!/usr/bin/expect
# 设置超时时间,单位秒
set timeout 10
# 主要功能是给ssh运行进程加个壳,用来传递交互指令
spawn ssh -A user@1.1.1.1         # 开启一个进程,后面跟命令或者程序(需要做交互的,比如ssh)
# 判断上次输出结果里是否包含 Password: 的字符串,如果有则立即返回,否则就等待一段时间后返回,这里等待时长就是前面设置的 10秒
expect "Password:"            # 匹配进程中的字符串
# 发送密码 \r 表示字符串结束
send "yourpassword\r"           # 当匹配到字符串时发送指定的字符串信息
# 执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。
# 如果没有这一句登录完成后会退出,而不是留在远程终端上。
interact                # 允许交互
#!/usr/bin/expect -f 
set timeout 30
spawn ssh -l 用户名 10.125.25.189
expect "password:"
send "要输入的密码"    
interact
# 执行
./sshlo
# expect解释器执行
expect sshlo
#!/bin/bash 
ip=$1  
user=$2 
password=$3 
expect <<EOF  
    set timeout 30
    spawn ssh $user@$ip 
    expect { 
        "yes/no" { send "yes\n";exp_continue } 
        "password" { send "$password\n" }
    } 
    expect "]#" { send "useradd zs\n" } 
    expect "]#" { send "touch /opt/zs.txt\n" } 
    expect "]#" { send "exit\n" } 
    expect eof 
 EOF

sshpass 方式

# 安装
yum install -y sshpass
# 格式
sshpass -p 密码 ssh -A -g yourname@ip
sshpass -p 7jnnn335wcvb ssh -p 31324 root@112.230.202.196 && /root/miniconda3/envs/mmenv/bin/python ~/0predict1.py


相关文章
|
7月前
|
安全 Shell Linux
【Shell 命令集合 文件管理】Linux ssh 远程主机之间复制文件 scp 命令使用教程
【Shell 命令集合 文件管理】Linux ssh 远程主机之间复制文件 scp 命令使用教程
220 0
|
6月前
|
安全 Linux Shell
Linux中SSH命令介绍
Linux中SSH命令介绍
148 2
|
2月前
|
安全 Shell Linux
ssh密码忘记了怎么办
通过上述措施,不仅能够有效应对SSH密码遗忘的挑战,还能全方位加固SSH连接的安全,确保数据传输的无忧。
42 2
|
7月前
|
Ubuntu Shell Linux
使用sshpass工具通过SSH执行远程命令
`sshpass`是一个用于在脚本中自动输入SSH密码的工具 **在Debian/Ubuntu上安装sshpass:** ```bash sudo apt-get install sshpass ``` **在CentOS/RHEL上安装sshpass:** ```bash sudo yum install sshpass ``` **在Fedora上安装sshpass:** ```bash sudo dnf install sshpass ``` 安装完成后,你可以使用`sshpass`命令通过SSH执行远程命令。以下是一个示例: ```bash sshpass -p 'yo
677 0
|
4月前
|
安全 Shell 网络安全
告别繁琐密码,一键解锁GitHub高效秘籍!SSH配置大揭秘,让你的代码托管之旅飞起来!
【8月更文挑战第4天】在使用GitHub时,频繁输入账号密码颇为不便。采用SSH协议可提升安全性并简化流程。本文以问答形式指导你快速配置GitHub SSH:了解SSH优势、学会生成与添加SSH密钥及测试连接。通过简单的步骤,即可实现无缝代码推送与拉取,享受高效、安全的开发体验。记得保护好私钥并根据需要设置多个密钥对。
68 7
|
4月前
|
网络安全 数据安全/隐私保护
VSC通过 SSH 连接到远程服务器时,每次都需要输入密码
VSC通过 SSH 连接到远程服务器时,每次都需要输入密码
1054 0
|
4月前
|
安全 Linux Shell
Linux系统之间实现免密码登录(SSH无密码登录
【8月更文挑战第21天】要在Linux系统间实现SSH免密码登录,需先在源机器生成SSH密钥对,然后将公钥复制到目标机器的`.ssh/authorized_keys`文件中。可通过`ssh-keygen`命令生成密钥,并使用`ssh-copy-id`命令传输公钥。最后测试SSH连接,确保能无密码登录。若目标机器缺少相关目录或文件,需手动创建并设置适当权限。完成这些步骤后,即可实现安全便捷的免密码登录。
149 0
|
4月前
|
安全 Linux Shell
SSH 命令完整实用指南 | Linux SSH 服务
【8月更文挑战第20天】
484 0
|
4月前
|
jenkins 网络安全 持续交付
Jenkins Pipeline 流水线 - 上传文件 Publish over SSH 执行命令
Jenkins Pipeline 流水线 - 上传文件 Publish over SSH 执行命令
248 0
|
6月前
|
安全 Linux Shell
SSH服务器拒绝密码登录的解决方法
SSH服务器拒绝密码登录的解决方法
1391 1

相关实验场景

更多