`

linux ssh sshpass - ssh无交互密码

阅读更多
【基本介绍】
ssh远程连接到服务器认证密码的时候分为交互模式和非交互模式。交互模式就是我们登入要手动输入密码,非交互模式就是不需要人工输入密码。
这里我们介绍非交互模式

【非交互模式】
1.公钥和私钥的方式
Master作为客户端,要实现无密码公钥认证,连接到服务器Salve上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Salve上。当Master通过SSH链接到Salve上时,Salve会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Salve,Salve确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,期间不需要手工输入密码,重要的过程是将Master上产生的公钥复制到Salve上。

  1.1 ssh-keygen -t rsa 生成密钥文件
  1.2 将id_rsa.pub加到授权的authorized_keys里面去
  1.3 拷贝id_rsa.pub密匙文件到目的服务器(ssh-copy-id)
  1.4 注意文件的权限问题

2.sshpass
sshpass  is  a  utility  designed for running ssh using the mode referred to as "keyboard-interactive" password authentication, but in non-interactive mode.

[root@sparkVM script]# sshpass --help
sshpass: invalid option -- '-'
Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
   -f filename   Take password to use from file
   -d number     Use number as file descriptor for getting password
   -p password   Provide password as argument (security unwise)
   -e            Password is passed as env-var "SSHPASS"
   With no parameters - password will be taken from stdin

   -h            Show help (this screen)
   -V            Print version information
At most one of -f, -d, -p or -e should be used

[root@sparkVM script]# sshpass root ssh -l root ipaddress "cat /etc/issue"


3.expect交互
[root@sparkVM script]# cat expect.exp 
#!/usr/bin/expect -f  
set ip [lindex $argv 0 ]
set password [lindex $argv 1 ]
set timeout 5
spawn ssh root@$ip 
expect {       
"*yes/no" { send "yes\r"; exp_continue}
"*password:" { send "$password\r" } 
}
interact
[root@sparkVM script]# ./expect.exp ipaddress root
spawn ssh root@192.168.197.129



【参考】
http://www.2cto.com/os/201301/186673.html
https://linuxtoy.org/archives/sshpass.html
分享到:
评论

相关推荐

    sshpass-1.06.tar.gz 安装包及安装说明

    SSHPass是Linux和Unix系统中一个实用的命令行工具,用于在执行SSH连接时提供密码。这个工具的主要目的是为了自动化那些通常需要手动输入密码的任务,比如脚本化的远程服务器管理或者持续集成流程。`sshpass-1.06.tar...

    sshpass-1.06-1.el7.x86_64.rpm

    Linux方便的ssh非交互工具sshpass,使用sshpass实现自动ssh和自动scp。sshpass-1.06-1.el7.x86_64.rpm

    sshpass-1.06.tar.gz

    `sshpass` 是一个小型的命令行工具,主要目的是在非交互式环境中处理SSH密码。它允许用户在执行SSH命令时通过命令行、文件或环境变量提供密码,避免手动输入,提高自动化效率。 2. **使用方式** 使用 `sshpass`,...

    sshpass-1.08.tar.gz

    `sshpass`是一个开源命令行工具,主要针对Linux和Unix系统,允许用户在不交互输入密码的情况下进行SSH登录。这对于自动化流程、脚本或者无人值守的部署过程非常有用。通过`sshpass`,你可以预先提供SSH密码,从而...

    sshpass 资源以及安装使用说明

    SSHPass是一款用于非交互...总结,SSHPass是Linux/Unix环境中进行非交互式SSH登录的实用工具,通过提供密码参数,可以方便地集成到自动化脚本中。安装和使用过程相对简单,但在实际应用中应确保安全性,避免密码泄露。

    sshpass-1.06 源码版本

    SSHPass是Linux/Unix系统中一个实用的工具,它允许用户在命令行界面中通过提供SSH密码来执行无交互式的SSH连接。这对于自动化任务、脚本执行或在没有密钥对认证的情况下远程管理服务器非常有用。`sshpass-1.06`是...

    sshpass-1.05-1.el6.rf.x86_64.rpm下载

    在Linux后台中,经常会用到ssh、scp等命令。需要进行认证,手动输入密码,是交互式的过程。当将ssh、scp等命令做成自动化脚本时,可能需要非交互式的登录过程,此时可以用sshpass。

    sshpass - UNRAID、DSM

    在Linux环境中,特别是对于自动化脚本或者无人值守的系统管理任务,SSHPass 提供了一种方便的方法来传递SSH密码,使得系统可以通过非交互方式连接到远程服务器。 标题中的 "UNRAID" 和 "DSM" 分别指的是两种流行的...

    linux ssh远程服务器自动输入密码 sshpass插件

    SSHpass是一个方便的Linux工具,专为自动化任务设计,它允许通过命令行接口在SSH连接中自动输入密码,无需手动交互。这对于系统管理员执行脚本化任务或批量管理多台服务器时非常有用。 在描述中提到了sshpass的几个...

    bash脚本中将密码传递给ssh/scp命令方法详解

    首先,我们可以使用`sshpass`工具,这是一个允许在不交互的情况下向SSH或SCP命令提供密码的开源程序。安装`sshpass`的方法取决于你的Linux发行版。在Debian或Ubuntu上,你可以使用`apt`命令安装: ```bash sudo apt...

    sshpass源码sshpass源码

    总的来说,SSHPass是一个实用的工具,它的源码可以帮助我们理解如何与SSH进行交互并安全地传递密码。通过学习和分析源码,开发者可以进一步了解Unix/Linux系统的底层工作原理,同时也能掌握编译和调试C语言程序的...

    sshpass跨机器密码校验

    SSHpass允许用户在不使用交互式提示的情况下通过命令行提供SSH密码。这对于自动化流程非常有用,比如在无人值守的脚本中,你可能需要登录到远程服务器执行某些操作。使用SSHpass可以避免每次连接都需要手动输入密码...

    shell脚本实现ssh-copy-id批量自动发送公钥到远程主机

    `sshpass`是一个用于提供非交互式SSH密码认证的工具。在脚本中,我们可以通过`sshpass`传递密码,然后使用`ssh-copy-id`将公钥发送到远程主机。以下是一个简单的示例脚本(`ssh-sshpass.sh`): ```bash #!/bin/...

    ssh免交互创建、修改、查找账户源码

    ssh免交互创建、修改、查找账户源码 公司的产品集成了IBM的TIM工具,用于linxu远程账户管理。由于TIM是收费软件、且价格不菲,于是决定开发一款自己的远程账户管理工具来替代TIM。由于此工具是集成在产品中被前端...

    通过SSHPASS执行命令及相关脚本

    标题中的“通过SSHPASS执行命令及相关脚本”是指在Linux环境下使用`sshpass`工具进行非交互式SSH登录并执行远程命令的技术。`sshpass`是一个命令行实用程序,它允许用户在不手动输入密码的情况下,通过SSH连接执行...

    sshpass.tar.gz

    `sshpass`是一个命令行实用程序,它允许用户在不交互输入密码的情况下通过SSH连接到服务器,这对于自动化脚本或批量处理任务非常有用。`sshpass.tar.gz`是一个包含`sshpass`源代码或二进制文件的压缩包。 首先,...

    Linux小工具,它允许你用 -p 参数指定明文密码,然后直接登录远程服务器 仅供自用

    它的主要功能是允许用户通过-p参数显式地指定SSH连接所需的密码,这样就无需交互式地输入密码,提高了自动化任务的效率。这对于那些需要频繁执行SSH登录但又不希望每次都手动输入密码的情况非常有用。 使用sshpass...

    ssh登录demo

    SSH登录演示("ssh登录demo")通常涉及到在本地计算机上通过SSH客户端连接到远程服务器的过程,以便进行命令行交互、文件传输或自动化任务。在Linux和Unix-like系统中,SSH是管理员常用的工具,它也支持Windows系统...

    Ubuntu 20.04.1安装ssh离线资源包

    在IT领域,尤其是在服务器运维中,SSH(Secure Shell)是一个至关重要的工具,它允许系统管理员安全地远程控制和管理Linux或Unix系统。本教程将详细讲解如何在Ubuntu 20.04.1 LTS(Focal Fossa)上离线安装SSH服务,...

    关于SSH 远程执行命令你要知道的二三事

    `sshpass`是一个简单的命令行工具,用于非交互式地通过SSH进行密码验证。使用前需要先安装`sshpass`,然后通过指定密码参数来执行远程命令。 - **安装**:`yum install sshpass` - **执行命令**: ```bash ...

Global site tag (gtag.js) - Google Analytics